/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import mrp.beans.util.JsfUtil;
import mrp.entity.GestorBaseDatos;
import mrp.persistencia.entity.*;
import mrp.login.Login;
import mrp.persistencia.controller.*;
import mrp.persistencia.controller.exceptions.IllegalOrphanException;
import mrp.persistencia.controller.exceptions.NonexistentEntityException;
import mrp.persistencia.controller.exceptions.PreexistingEntityException;
import mrp.persistencia.controller.exceptions.RollbackFailureException;
import mrp.web.MateriaPrimaWeb;

/**
 *
 * @author root
 */
//@ManagedBean(name="materiaprima")
//@SessionScoped
public class MateriaPrimaBean implements Serializable{
//    @ManagedProperty("#{usuarioBean}")
//    private UsuarioBean usuarioBean;
//    @ManagedProperty("#{login}")
//    private Login login;
//    @ManagedProperty("#{insumo}")
//    private InsumoBean insumo;  
//    @ManagedProperty("#{unidadmedida}")
//    private UnidadMedidaBean unidadmedida;
//    @ManagedProperty("#{talla}")
//    private TallaBean talla;
//    @ManagedProperty("#{materiaprimaweb}")
//    private MateriaPrimaWeb materiaprimaweb;
    
//    private TallaTacoSuelaBean tallatacosuela=new TallaTacoSuelaBean();
    
//    private MateriaPrima materiaprima;
//    private Agregado agregado;
//    private Cuero cuero;
//    private Forro forro;
//    private TacoSuela tacosuela=new TacoSuela();
    
    private MateriaprimaJpaController materiaprimaController;
    private InsumoJpaController insumoController;
    private UnidadmedidaJpaController unidadmedidaController;
    private AgregadoJpaController agregadoController;
    private CueroJpaController cueroController;
    private ForroJpaController forroController;
    private TacosuelaJpaController tacosuelaController;
    private TallaJpaController tallaController;
    private TallatacosuelaJpaController tallatacosuelaController;
    
    private Materiaprima materiaprima;
    private Agregado agregado;
    private Cuero cuero;
    private Forro forro;
    private Tacosuela tacosuela;
    
    private List <Tallatacosuela> listatallatacosuela;

    public MateriaPrimaBean() {
        materiaprimaController=new MateriaprimaJpaController();
        insumoController=new InsumoJpaController();
        unidadmedidaController=new UnidadmedidaJpaController();
        agregadoController=new AgregadoJpaController();
        cueroController=new CueroJpaController();
        forroController=new ForroJpaController();
        tacosuelaController=new TacosuelaJpaController();
        tallaController=new TallaJpaController();   
        tallatacosuelaController=new TallatacosuelaJpaController();
        
        materiaprima=new Materiaprima();
        agregado=new Agregado();
        cuero=new Cuero();
        forro=new Forro();
        tacosuela=new Tacosuela();
    }

    public TallaJpaController getTallaController() {
        return tallaController;
    }

    public void setTallaController(TallaJpaController tallaController) {
        this.tallaController = tallaController;
    }

    
    
    public InsumoJpaController getInsumoController() {
        return insumoController;
    }

    public void setInsumoController(InsumoJpaController insumoController) {
        this.insumoController = insumoController;
    }

    public UnidadmedidaJpaController getUnidadmedidaController() {
        return unidadmedidaController;
    }

    public void setUnidadmedidaController(UnidadmedidaJpaController unidadmedidaController) {
        this.unidadmedidaController = unidadmedidaController;
    }

    public TallatacosuelaJpaController getTallatacosuelaController() {
        return tallatacosuelaController;
    }

    public void setTallatacosuelaController(TallatacosuelaJpaController tallatacosuelaController) {
        this.tallatacosuelaController = tallatacosuelaController;
    }
        
    
    
    //-------------------- metodos getters and setters-----------------------

//    public TallaTacoSuelaBean getTallatacosuela() {
//        return tallatacosuela;
//    }
//
//    public void setTallatacosuela(TallaTacoSuelaBean tallatacosuela) {
//        this.tallatacosuela = tallatacosuela;
//    }    

    
    public Agregado getAgregado() {
        return agregado;
    }

    public void setAgregado(Agregado agregado) {
        this.agregado = agregado;
    }

    public Cuero getCuero() {
        return cuero;
    }

    public void setCuero(Cuero cuero) {
        this.cuero = cuero;
    }

    public Forro getForro() {
        return forro;
    }

    public void setForro(Forro forro) {
        this.forro = forro;
    }

    public Tacosuela getTacosuela() {
        return tacosuela;
    }

    public void setTacosuela(Tacosuela tacosuela) {
        this.tacosuela = tacosuela;
    }

    public Materiaprima getMateriaprima() {
        return materiaprima;
    }

    public void setMateriaprima(Materiaprima materiaprima) {
        this.materiaprima = materiaprima;
    }
    
    
    
    public List<Tallatacosuela> getListatallatacosuela() {
        return listatallatacosuela;
    }

    public void setListatallatacosuela(List<Tallatacosuela> listatallatacosuela) {
        this.listatallatacosuela = listatallatacosuela;
    }
    
//    public MateriaPrima getMateriaprima() {
//        return materiaprima;
//    }
//
//    public void setMateriaprima(MateriaPrima materiaprima) {
//        this.materiaprima = materiaprima;
//    }
//    public Agregado getAgregado() {
//        return agregado;
//    }
//
//    public void setAgregado(Agregado agregado) {
//        this.agregado = agregado;
//    }
//
//    public Cuero getCuero() {
//        return cuero;
//    }
//
//    public void setCuero(Cuero cuero) {
//        this.cuero = cuero;
//    }
//
//    public Forro getForro() {
//        return forro;
//    }
//
//    public void setForro(Forro forro) {
//        this.forro = forro;
//    }
//
//    public Login getLogin() {
//        return login;
//    }
//
//    public void setLogin(Login login) {
//        this.login = login;
//    }
//
//    public MateriaPrimaWeb getMateriaprimaweb() {
//        return materiaprimaweb;
//    }
//
//    public void setMateriaprimaweb(MateriaPrimaWeb materiaprimaweb) {
//        this.materiaprimaweb = materiaprimaweb;
//    }
//
//    public TacoSuela getTacosuela() {
//        return tacosuela;
//    }
//
//    public void setTacosuela(TacoSuela tacosuela) {
//        this.tacosuela = tacosuela;
//    }
//
//    public UsuarioBean getUsuarioBean() {
//        return usuarioBean;
//    }
//
//    public void setUsuarioBean(UsuarioBean usuarioBean) {
//        this.usuarioBean = usuarioBean;
//    }
//
//    public InsumoBean getInsumo() {
//        return insumo;
//    }
//
//    public void setInsumo(InsumoBean insumo) {
//        this.insumo = insumo;
//    }
//
//    public UnidadMedidaBean getUnidadmedida() {
//        return unidadmedida;
//    }
//
//    public void setUnidadmedida(UnidadMedidaBean unidadmedida) {
//        this.unidadmedida = unidadmedida;
//    }
//
//    public TallaBean getTalla() {
//        return talla;
//    }
//
//    public void setTalla(TallaBean talla) {
//        this.talla = talla;
//    }      
    
    
    //-agrgado
//    public String getMateriaPrima_fkAgrgado() {
//        return this.getAgregado().getMateriaPrima_fk();
//    }
//    public void setMateriaPrima_fkAgrgado(String materiaPrima_fk) {
//        this.getAgregado().setMateriaPrima_fk(materiaPrima_fk);
//    }
//    public String getNombreMateriaPrimaAgrgado() {
//        return this.getAgregado().getNombreMateriaPrima();
//    }
//    public void setNombreMateriaPrimaAgrgado(String NombreMateriaPrima) {
//        this.getAgregado().setNombreMateriaPrima(NombreMateriaPrima);
//    }
//    public String getCodAgregado() {
//        return this.getAgregado().getCodAgregado();
//    }
//    public void setCodAgregado(String codAgregado) {
//        this.getAgregado().setCodAgregado(codAgregado);
//    }
//    //-Cuero
//    public String getMateriaPrima_fkCuero() {
//        return this.getCuero().getMateriaPrima_fk();
//    }
//
//    public void setMateriaPrima_fkCuero(String materiaPrima_fk) {
//        this.getCuero().setMateriaPrima_fk(materiaPrima_fk);
//    }
//
//    public String getCodCuero() {
//        return this.getCuero().getCodCuero();
//    }
//
//    public void setCodCuero(String codCuero) {
//        this.getCuero().setCodCuero(codCuero);
//    }
//
//    public String getColorCuero() {
//        return this.getCuero().getColor();
//    }
//
//    public void setColorCuero(String color) {
//        this.getCuero().setColor(color);
//    }
//
//    public String getNombreCuero() {
//        return this.getCuero().getNombreCuero();
//    }
//
//    public void setNombreCuero(String nombreCuero) {
//        this.getCuero().setNombreCuero(nombreCuero);
//    }
//
//    public String getTexturaCuero() {
//        return this.getCuero().getTextura();
//    }
//
//    public void setTexturaCuero(String textura) {
//        this.getCuero().setTextura(textura);
//    }   
//    //-Forro
//    public String getCodForro() {
//        return this.getForro().getCodForro();
//    }
//
//    public void setCodForro(String codForro) {
//        this.getForro().setCodForro(codForro);
//    }
//
//    public String getMateriaPrima_fkForro() {
//        return this.getForro().getMateriaPrima_fk();
//    }
//
//   public void setMateriaPrima_fkForro(String materiaPrima_fk) {
//        this.getForro().setMateriaPrima_fk(materiaPrima_fk);
//    }
//
//    public String getDigitadorForro() {
//        return this.getForro().getDigitador();
//    }
//
//    public void setDigitadorForro(String digitador) {
//        this.getForro().setDigitador(digitador);
//    }
//
//    public String getFechaDigitadorForro() {
//        return this.getForro().getFechaDigitador();
//    }
//
//    public void setFechaDigitadorForro(String fechaDigitador) {
//        this.getForro().setFechaDigitador(fechaDigitador);
//    }
//
//    public String getTipoForro() {
//        return this.getForro().getTipoForro();
//    }
//
//    public void setTipoForro(String tipoForro) {
//        this.getForro().setTipoForro(tipoForro);
//    } 
//    //-materiaprima
//    public boolean isActivo() {
//        return this.getMateriaprima().isActivo();
//    }
//
//    public void setActivo(boolean activo) {
//        this.getMateriaprima().setActivo(activo);
//    }
//
//    public String getCodMateriaPrima() {
//        return this.getMateriaprima().getCodMateriaPrima();
//    }
//
//    public void setCodMateriaPrima(String codMateriaPrima) {
//        this.getMateriaprima().setCodMateriaPrima(codMateriaPrima);
//    }
//
//    public String getDescripcion() {
//        return this.getMateriaprima().getDescripcion();
//    }
//
//    public void setDescripcion(String descripcion) {
//        this.getMateriaprima().setDescripcion(descripcion);
//    }
//
//    public String getDigitador() {
//        return this.getMateriaprima().getDigitador();
//    }
//
//    public void setDigitador(String digitador) {
//        this.getMateriaprima().setDigitador(digitador);
//    }
//
//    public String getFechaCreacion() {
//        return this.getMateriaprima().getFechaCreacion();
//    }
//
//    public void setFechaCreacion(String fechaCreacion) {
//        this.getMateriaprima().setFechaCreacion(fechaCreacion);
//    }
//
//    public char getTipo() {
//        return this.getMateriaprima().getTipo();
//    }
//
//    public void setTipo(char tipo) {
//        this.getMateriaprima().setTipo(tipo);
//    }
//    public String getInsumo_fk() {
//        return this.getMateriaprima().getInsumo_fk();
//    }
//
//    public void setInsumo_fk(String insumo_fk) {
//        this.getMateriaprima().setInsumo_fk(insumo_fk);
//    }
//
//    public String getUnidadMedida_fk() {
//        return this.getMateriaprima().getUnidadMedida_fk();
//    }
//
//    public void setUnidadMedida_fk(String unidadMedida_fk) {
//        this.getMateriaprima().setUnidadMedida_fk(unidadMedida_fk);
//    }
//   //-tacoSuela
//    public String getCodTacoSuela() {
//        return this.getTacosuela().getCodTacoSuela();
//    }
//
//    public void setCodTacoSuela(String codTacoSuela) {
//        this.getTacosuela().setCodTacoSuela(codTacoSuela);
//    }
//
//    public int getEsTacoSuela() {
//        return this.getTacosuela().getEsTacoSuela();
//    }
//
//    public void setEsTacoSuela(int esTacoSuela) {
//        this.getTacosuela().setEsTacoSuela(esTacoSuela);
//    }
//
//    public String getNombreTacoSuela() {
//        return this.getTacosuela().getNombreTacoSuela();
//    }
//
//    public void setNombreTacoSuela(String nombreTacoSuela) {
//        this.getTacosuela().setNombreTacoSuela(nombreTacoSuela);
//    }
//    public String getMateriaPrima_fkTacoSuela() {
//        return this.getTacosuela().getMateriaPrima_fk();
//    }
//
//   public void setMateriaPrima_fkTacoSuela(String materiaPrima_fk) {
//        this.getTacosuela().setMateriaPrima_fk(materiaPrima_fk);
//    }
//   
//    //-TallaTacoSuela
//    public String getCodTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getCodTallaTacoSuela();
//    }
//
//    public void setCodTallaTacoSuela(int i,String codTallaTacoSuela) {
//        this.getListatallatacosuela().get(i).setCodTallaTacoSuela(codTallaTacoSuela);
//    }
//
//    public String getDigitadorTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getDigitador();
//    }
//
//    public void setDigitadorTallaTacoSuela(int i,String digitador) {
//        this.getListatallatacosuela().get(i).setDigitador(digitador);
//    }
//
//    public String getFechaDigitadorTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getFechaDigitador();
//    }
//
//    public void setFechaDigitadorTallaTacoSuela(int i,String fechaDigitador) {
//        this.getListatallatacosuela().get(i).setFechaDigitador(fechaDigitador);
//    }
//
//    public String getTacoSuela_fkTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getTacoSuela_fk();
//    }
//
//    public void setTacoSuela_fkTallaTacoSuela(int i,String tacoSuela_fk) {
//        this.getListatallatacosuela().get(i).setTacoSuela_fk(tacoSuela_fk);
//    }
//
//    public String getTalla_fkTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getTalla_fk();
//    }
//
//    public void setTalla_fkTallaTacoSuela(int i,String talla_fk) {
//        this.getListatallatacosuela().get(i).setTalla_fk(talla_fk);
//    }
    //-----------------fin metodos getters and setters-----------------------
    //-----------------metodos de la clase --------------------------
    @Override
    protected void finalize() throws Throwable {
        super.finalize();
    }
//    public void mostrarMensaje(String tipoMensaje,String mensaje, String detalle)
//    {
//        if(tipoMensaje.equals("info"))
//        {
//            FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO, mensaje,detalle) );   
//        }else{
//            if(tipoMensaje.equals("error"))
//            {
//                FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR, mensaje,detalle) );   
//            }else{
//                if(tipoMensaje.equals("fatal"))
//                {
//                    FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_FATAL, mensaje,detalle) );   
//                }else{
//                    if(tipoMensaje.equals("alerta"))
//                    {
//                        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_WARN, mensaje,detalle) );   
//                    }
//                }
//            }
//        }
//    }
    
//    public boolean verificarLogin()
//    {
//        if(login.verificarSesionUsuario().equals(usuarioBean.getUsuario().getIdSesion()))
//        {           
//            return true;
//        }
//        else
//        {
//            this.mostrarMensaje("error","No está ingresado al sistema","");
//            //this.borrarDatos();
//        }
//        return false;
//    }
//    private void setearConexion(GestorBaseDatos gbd)
//    {
//        gbd.setUsuario(usuarioBean.getUsuario().getCedulaUsuario());
//        gbd.setClave(usuarioBean.getUsuario().getClave());
//        gbd.setBasedatos("BDEgoZapateria");
//        gbd.setPuerto("5432");
//        gbd.setServidor("localhost");
//    }
    public List<Object> crearMateriaPrima(String categoria)
    {
        /*if(this.verificarLogin())
        {
            
            GestorBaseDatos gbd=new GestorBaseDatos();
            this.setearConexion(gbd);
            //obtener fecha y hora del servidor
            List fechaList=gbd.select("SELECT TIMESTAMP WITHOUT TIME ZONE \'now\'");
            String fechaHora=(fechaList.get(0).toString());
            this.setFechaCreacion(fechaHora);
            
            List <String> datosLista= new ArrayList<String>();
            String respuestaInsert; //es la respuesta del insert si se almaceno o no los datos

            //Generacion del primary key
            this.setCodMateriaPrima(gbd.generaCodigo("materiaprima", "MP"));
            datosLista.add(0,"\'"+this.getCodMateriaPrima()+"\'");

            datosLista.add(1,"\'"+this.getDescripcion()+"\'");                
            datosLista.add(2,"\'"+this.getFechaCreacion()+"\'"); 
            datosLista.add(3,""+this.isActivo()+""); 
            datosLista.add(4,"\'"+this.getTipo()+"\'"); 
            datosLista.add(5,"\'"+this.getInsumo_fk()+"\'");
            datosLista.add(6,""+this.getUnidadMedida_fk()+"");
            
            datosLista.add(7,this.usuarioBean.getUsuario().getCodUsuario());

            datosLista.add(8,"\'"+fechaHora+"\'");

            //Almacenar datos en la tabla MateriaPrima
            respuestaInsert=""+gbd.insert("MateriaPrima",datosLista,true);

            if(respuestaInsert.equals("Registro almacenado correctamente"))
            {
                if(categoria.equals("Agregado"))
                {
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    //Generacion del primary key
                    this.setCodAgregado(gbd.generaCodigo("agregado", "AG"));
                    datosLista1.add(0,"\'"+this.getCodAgregado()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreMateriaPrimaAgrgado()+"\'");   
                    
                    this.setMateriaPrima_fkAgrgado(this.getCodMateriaPrima());
                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkAgrgado()+"\'"); 

                    //Almacenar datos en la tabla Agregado
                    respuestaInsert1=""+gbd.insert("Agregado",datosLista1,true);

                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
                    {
                            //gbd.commit();
                            //gbd.desconectar();
                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
                            //this.borrarDatos();                           
                            return true;
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al almacenar los datos","");
                    }                                
                }
                else if(categoria.equals("Cuero")) {
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    //Generacion del primary key
                    this.setCodCuero(gbd.generaCodigo("cuero", "CU"));
                    datosLista1.add(0,"\'"+this.getCodCuero()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreCuero()+"\'"); 
                    datosLista1.add(2,"\'"+this.getColorCuero()+"\'");
                    datosLista1.add(3,"\'"+this.getTexturaCuero()+"\'");
                    
                    this.setMateriaPrima_fkCuero(this.getCodMateriaPrima());
                    datosLista1.add(4,"\'"+this.getMateriaPrima_fkCuero()+"\'"); 
                    
                    //Almacenar datos en la tabla Cuero
                    respuestaInsert1=""+gbd.insert("Cuero",datosLista1,true);

                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
                    {
                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
                            //gbd.commit();
                            //gbd.desconectar();
                            //this.borrarDatos();                           
                            return true;
                    }
                    else
                    {
                        //gbd.rollback();
                        //gbd.desconectar();
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        mostrarMensaje("fatal","Error al almacenar los datos","");
                    }                                
                }
                else if(categoria.equals("Forro")){
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    //Generacion del primary key
                    this.setCodForro(gbd.generaCodigo("forro", "FR"));
                    datosLista1.add(0,"\'"+this.getCodForro()+"\'");

                    datosLista1.add(1,"\'"+this.getTipoForro()+"\'"); 
                                        
                    this.setMateriaPrima_fkForro(this.getCodMateriaPrima());
                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkForro()+"\'"); 
                    
                    //Almacenar datos en la tabla forro
                    respuestaInsert1=""+gbd.insert("Forro",datosLista1,true);

                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
                    {
                        //gbd.commit();
                        //gbd.desconectar();
                        this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
                        //this.borrarDatos();                           
                        return true;
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al almacenar los datos","");
                    }
                }
                else if(categoria.equals("Suela")){
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    //Generacion del primary key
                    this.setCodTacoSuela(gbd.generaCodigo("tacosuela", "TS"));
                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
                                        
                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
                    
                    //Almacenar datos en la tabla Taco Suela
                    respuestaInsert1=""+gbd.insert("TacoSuela",datosLista1,true);

                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
                    {
                        int contadorFallo=0;
                        boolean seAlmaceno=false;
                        for(int i=0;i<this.getListatallatacosuela().size();i++)
                        {                            
                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
                            
                            //Generacion del primary key
                            this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
                             
                            this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
                            this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
                            System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
                            this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
                                                                          this.getListatallatacosuela().get(i).getTalla_fk(), 
                                                                          this.getListatallatacosuela().get(i).getTacoSuela_fk(),
                                                                          this.getUsuarioBean().getUsuario().getCodUsuario(),
                                                                          fechaHora);
                            //Almacenar datos en la tabla tallaTacoSuela
                            if(this.getTallatacosuela().crearTallaTacoSuela())
                            {
                                seAlmaceno=true;
                            }
                            else
                            {
                                contadorFallo=i;
                                seAlmaceno=false;
                                i=this.getListatallatacosuela().size();
                            }                            
                        }
                        if(seAlmaceno)                      
                        {
                            //gbd.commit();
                            //gbd.desconectar();
                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
                            //this.borrarDatos();                           
                            return true;
                        }
                        else
                        {
                            //agregar el codigo para borrar los datos de la tabla materia prima
                            //gbd.rollback();
                            //gbd.desconectar();
                            mostrarMensaje("fatal","Error al almacenar los datos","");
                        }
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al almacenar los datos","");
                    }
                    
                }
                else if(categoria.equals("Taco"))
                {                    
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    //Generacion del primary key
                    this.setCodTacoSuela(gbd.generaCodigo("tacosuela", "TS"));
                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
                                        
                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
                    
                    //Almacenar datos en la tabla Taco Suela
                    respuestaInsert1=""+gbd.insert("TacoSuela",datosLista1,true);

                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
                    {
                        int contadorFallo=0;
                        boolean seAlmaceno=false;
                        for(int i=0;i<this.getListatallatacosuela().size();i++)
                        {                            
                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
                            
                            //Generacion del primary key
                            this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
                            this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
                            System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
                            this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
                            this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
                                                                          this.getListatallatacosuela().get(i).getTalla_fk(), 
                                                                          this.getListatallatacosuela().get(i).getTacoSuela_fk(),
                                                                          this.getUsuarioBean().getUsuario().getCodUsuario(),
                                                                          fechaHora);
                            //Almacenar datos en la tabla tallaTacoSuela
                            if(this.getTallatacosuela().crearTallaTacoSuela())
                            {
                                seAlmaceno=true;
                            }
                            else
                            {
                                contadorFallo=i;
                                seAlmaceno=false;
                                i=this.getListatallatacosuela().size();
                            }                            
                        }
                        if(seAlmaceno)                      
                        {
                            //gbd.commit();
                            //gbd.desconectar();
                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
                            //this.borrarDatos();                           
                            return true;
                        }
                        else
                        {
                            //agregar el codigo para borrar los datos de la tabla materia prima
                            //gbd.rollback();
                            //gbd.desconectar();
                            mostrarMensaje("fatal","Error al almacenar los datos","");
                        }
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima en caso de que no se hayan almacenado los datosde las tablas subsiguientes
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al almacenar los datos","");
                    }
                    
                }
                
                //this.borrarDatos();
                //return true;
            }
            else
            {
                //gbd.rollback();
                //gbd.desconectar();
                this.mostrarMensaje("fatal","Error al almacenar los datos","");
            }                
        }
        else
        {
            this.mostrarMensaje("error","Error: La Materia Prima que desea ingresar ya existe","");
            //this.borrarDatos();     
            return true;
        }                                
        return false;*/
        List listaRespuesta=new ArrayList<Object>();
         
        try {    
            TablaindiceJpaController tic=new TablaindiceJpaController();
            String numeromateriaprima=tic.generaCodigo("materiaprima", "MP");
            
                if(categoria.equals("Agregado"))
                {
//                   this.getAgregado().setCodmateriaprima(numerocliente); 
//                   this.getAgregado().getMateriaprima().setCodmateriaprima(numerocliente);
//                   this.agregadoController.create(this.getAgregado());
                    this.getAgregado().setCodmateriaprima(numeromateriaprima);
//                    this.getMateriaprima().getAgregado().setCodmateriaprima(numerocliente);
                    System.out.println(this.getAgregado().getCodmateriaprima()+this.getAgregado().getNombremateriaprima());
                    this.agregadoController.create(this.getAgregado());
                }
                else if(categoria.equals("Cuero"))
                {
                    this.getCuero().setCodmateriaprima(numeromateriaprima); 
//                    this.getCuero().getMateriaprima().setCodmateriaprima(numerocliente);
                    this.cueroController.create(this.getCuero());
                } 
                else if(categoria.equals("Forro"))
                {
                    this.getForro().setCodmateriaprima(numeromateriaprima);
//                    this.getForro().getMateriaprima().setCodmateriaprima(numerocliente);
                    this.forroController.create(this.getForro());
                }
                else if(categoria.equals("TacoSuela"))
                {
                    this.getTacosuela().setCodmateriaprima(numeromateriaprima);
                    String numerotallatacosuela=tic.generaCodigo("tallatacosuela", "TT");
                    for(int i=0;i<this.getTacosuela().getTallatacosuelaList().size();i++)
                    {    
                        this.getTacosuela().getTallatacosuelaList().get(i).setCodtallatacosuela(numerotallatacosuela);
                        this.getTacosuela().getTallatacosuelaList().get(i).setTacosuelaFk(this.getTacosuela());
                        numerotallatacosuela=tic.creaNuevoCodigo(numerotallatacosuela, "TT");
                    }
//                    Tacosuela tacosu=this.getTacosuela();
//                    this.getTacosuela().getMateriaprima().setCodmateriaprima(numerocliente);
                    this.tacosuelaController.create(this.getTacosuela());
                }
            listaRespuesta.add(true);
            listaRespuesta.add("Creado Nueva Materia Prima!");
            return listaRespuesta;                        
             }
        catch(IllegalOrphanException ex)
        {
            listaRespuesta.add(false);
            listaRespuesta.add("Error al crear nueva materia prima!");                       
            ex.printStackTrace();          
//            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
            
        }
        catch (PreexistingEntityException ex) {
            //System.out.println(" primero por aca!!!! mensaje = "+ex.getMessage());
            listaRespuesta.add(false);
            listaRespuesta.add(ex.getMessage());//"El cliente que desea crear ya existe!");
            ex.printStackTrace();
//            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RollbackFailureException ex) {
            listaRespuesta.add(false);
            listaRespuesta.add("Error al crear nueva materia prima!");                       
            ex.printStackTrace();          
//            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
        } 
        catch (Exception ex) {
            listaRespuesta.add(false);
            listaRespuesta.add("Error al crear nueva materia prima!");
            //System.out.println("-------------&&&&&&&&&& mensaje = "+ex.getMessage());           
            ex.printStackTrace();            
//            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        
         return listaRespuesta;
    }
    
    public List<List> consultarMateriaPrima(String consultar, String criterioConsulta,String coincidencia,String categoria,int maxResultados,int primerResultado,boolean todo)
    {
        List<List>listaRetorno=new ArrayList<List>();        
        List<tablaAgregado>listaAgregado=new ArrayList<tablaAgregado>();
        List<tablaCuero>listaCuero=new ArrayList<tablaCuero>();
        List<tablaForro>listaForro=new ArrayList<tablaForro>();
        List<tablaSuela>listaSuela=new ArrayList<tablaSuela>();
        List<tablaTaco>listaTaco=new ArrayList<tablaTaco>();
        
        consultar=consultar.toUpperCase();
        
        String query=" select ";
        String from=" from Materiaprima as mp";
        String where=" where ";
        if(criterioConsulta.equals("todo")||criterioConsulta.equals(""))
            where="";
        String like="";
        
        if(criterioConsulta.equals("CodMateriaPrima"))
        {
            like+=" mp.codmateriaprima like ";
            if(coincidencia.equals("todas"))
                like+=" \'%"+consultar+"%\' ";
            else if(coincidencia.equals("exacta"))
                like+=" \'"+consultar+"\' ";
            else if(coincidencia.equals("inicial"))
                like+=" \'"+consultar+"%\' ";
            else if(coincidencia.equals("final"))
                like+=" \'%"+consultar+"\' ";
        }
        else if(criterioConsulta.equals("UnidadMedida"))
        {
            consultar=consultar.toLowerCase();
            like+=" mp.unidadmedidaFk.abreviatura like ";
            if(coincidencia.equals("todas"))
                like+=" \'%"+consultar+"%\' ";
            else if(coincidencia.equals("exacta"))
                like+=" \'"+consultar+"\' ";
            else if(coincidencia.equals("inicial"))
                like+=" \'"+consultar+"%\' ";
            else if(coincidencia.equals("final"))
                like+=" \'%"+consultar+"\' ";
        }
        else if(criterioConsulta.equals("Insumo"))
        {    
            
            like+=" mp.insumoFk.nombreinsumo like ";   
            if(coincidencia.equals("todas"))
                like+=" \'%"+consultar+"%\' ";
            else if(coincidencia.equals("exacta"))
                like+=" \'"+consultar+"\' ";
            else if(coincidencia.equals("inicial"))
                like+=" \'"+consultar+"%\' ";
            else if(coincidencia.equals("final"))
                like+=" \'%"+consultar+"\' ";
        }
        else if(criterioConsulta.equals("Activo"))
        {            
            like+=" mp.activo= ";
            if(consultar.equalsIgnoreCase("activo"))
                like+=" true ";
            else
                like+=" false ";
        }      
        if(categoria.equals("Agregado")||categoria.equals("Total"))
        {
        //..Agregado
            String orderby=" order by mp.codmateriaprima ";
            if(criterioConsulta.equals("Nombre"))
            {   
                like=" mp.nombremateriaprima like ";
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
            }
            
            String queryagregado=query+" mp";
            String fromagregado=" from Agregado as mp ";
            String whereagregado=where+" ";  
            System.out.println("--------------La consulta es : "+queryagregado+fromagregado+whereagregado+like+orderby);
            List<Agregado> lista=this.agregadoController.findAgregadoWhereOrderBy(queryagregado+fromagregado+whereagregado+like+orderby, todo, maxResultados, primerResultado);            
            for(int j=0;j<lista.size();j++)
            {                
                Agregado ag=lista.get(j);
                String esActivo="Inactivo";
                if(ag.getActivo())
                    esActivo="Activo";
                
                listaAgregado.add(new tablaAgregado(ag.getCodmateriaprima(), 
                                                    ag.getInsumoFk().getNombreinsumo(), 
                                                    ag.getNombremateriaprima(),
                                                    ag.getUnidadmedidaFk().getAbreviatura(),
                                                    JsfUtil.convertirFecha(ag.getFechacreacion()), 
                                                    esActivo,
                                                    ag.getInsumoFk().getCodinsumo(), 
                                                    ag.getUnidadmedidaFk().getCodunidadmedida()));
            }
        } 
         if(categoria.equals("Cuero")||categoria.equals("Total"))
        {
        //..Cuero
            String orderby=" order by mp.codmateriaprima ";
            if(criterioConsulta.equals("Nombre"))
            {   
                like=" mp.nombrecuero like ";
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
            }
            
            String querycuero=query+" mp";
            String fromcuero=" from Cuero as mp ";
            String wherecuero=where+" ";  
            System.out.println("--------------La consulta es : "+querycuero+fromcuero+wherecuero+like+orderby);
            List<Cuero> lista=this.cueroController.findCueroWhereOrderBy(querycuero+fromcuero+wherecuero+like+orderby, todo, maxResultados, primerResultado);            
            for(int j=0;j<lista.size();j++)
            {                
                Cuero cu=lista.get(j);
                String esActivo="Inactivo";
                if(cu.getActivo())
                    esActivo="Activo";
                
                listaCuero.add(new tablaCuero(cu.getCodmateriaprima(), 
                                              cu.getInsumoFk().getNombreinsumo(), 
                                              cu.getNombrecuero(),
                                              cu.getColor(),
                                              cu.getTextura(),
                                              cu.getUnidadmedidaFk().getAbreviatura(),
                                              JsfUtil.convertirFecha(cu.getFechacreacion()), 
                                              esActivo,
                                              cu.getInsumoFk().getCodinsumo(), 
                                              cu.getUnidadmedidaFk().getCodunidadmedida()));
            }
        } 
        if(categoria.equals("Forro")||categoria.equals("Total"))
        {
        //..Forro
            String orderby=" order by mp.codmateriaprima ";
            if(criterioConsulta.equals("Nombre"))
            {   
                like=" mp.tipoforro like ";
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
            }
            
            String queryforro=query+" mp ";
            String fromforro=" from Forro as mp ";
            String whereforro=where+" ";
            System.out.println("--------------La consulta es : "+queryforro+fromforro+whereforro+like+orderby);
            List<Forro> lista=this.forroController.findForroWhereOrderBy(queryforro+fromforro+whereforro+like+orderby, todo, maxResultados, primerResultado);            
            for(int j=0;j<lista.size();j++)
            {
                Forro fo=lista.get(j);
                String esActivo="Inactivo";
                if(fo.getActivo())
                    esActivo="Activo";

                listaForro.add(new tablaForro(fo.getCodmateriaprima(), 
                                            fo.getInsumoFk().getNombreinsumo(), 
                                            fo.getTipoforro(),
                                            fo.getUnidadmedidaFk().getAbreviatura(),                        
                                            JsfUtil.convertirFecha(fo.getFechacreacion()),                         
                                            esActivo,                      
                                            fo.getInsumoFk().getCodinsumo(),                         
                                            fo.getUnidadmedidaFk().getCodunidadmedida()));                
            }            
        } 
        if(categoria.equals("Suela")||categoria.equals("Total"))
        {
        //..Suela
            String join="", orderby=" order by mp.codmateriaprima ";
            if(criterioConsulta.equals("Nombre"))
            {                   
                like=" mp.nombretacosuela like ";
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
            }            
            else if(criterioConsulta.equals("Talla"))
            {
//                select  mp from Tacosuela as mp left outer JOIN mp.tallatacosuelaList tts where mp.tipo='S' and  tts.tallaFk.codtalla like  '%3%' order by mp.codmateriaprima
                join=" LEFT OUTER JOIN mp.tallatacosuelaList tts ";
                like+=" tts.tallaFk.codtalla like ";
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
//                intersect+=" intersect "+query+"  mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela, um.codunidadmedida "+from+" ,tacosuela as ts, tallatacosuela as tts "+where+" and ts.codtacosuela=tts.tacosuela_fk and mp.codmateriaprima=ts.materiaprima_fk ";
            }
            //String querysuela=query+" mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,tts.talla_fk, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela,tts.codtallatacosuela, um.codunidadmedida ";
            //String fromsuela=from+" , tacosuela as ts, tallatacosuela as tts, talla as t ";
            //String wheresuela=where+" and mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S' and ts.codtacosuela=tts.tacosuela_fk and t.codtalla=tts.talla_fk ";
            
            String querysuela=query+" mp ";
            String fromsuela=" from Tacosuela as mp ";
            String wheresuela=" where mp.tipo='S' ";
            if(!like.equals(""))
            {
                wheresuela+=" and ";
            }            
            System.out.println("--------------La consulta es : "+querysuela+fromsuela+join+wheresuela+like+orderby);
            List<Tacosuela> lista=this.tacosuelaController.findTacosuelaWhereOrderBy(querysuela+fromsuela+join+wheresuela+like+orderby, todo, maxResultados, primerResultado);            
            String codmateriaprima="";
            for(int j=0;j<lista.size();j++)
            {
                Tacosuela ts=lista.get(j);
                String codmateriaprima1=ts.getCodmateriaprima();
                if(!codmateriaprima.equals(codmateriaprima1))
                {
                    String esActivo="Inactivo";
                    if(ts.getActivo())
                        esActivo="Activo";

                    listaSuela.add(new tablaSuela(ts.getCodmateriaprima(), 
                                                ts.getInsumoFk().getNombreinsumo(), 
                                                ts.getNombretacosuela(),
                                                ts.getUnidadmedidaFk().getAbreviatura(),                        
                                                JsfUtil.convertirFecha(ts.getFechacreacion()),                         
                                                esActivo,                      
                                                ts.getInsumoFk().getCodinsumo(),                         
                                                ts.getUnidadmedidaFk().getCodunidadmedida()));
                    codmateriaprima=codmateriaprima1;
                }
            }
           
            //select mp.codmateriaprima, ts.nombretacosuela from materiaprima as mp, tacosuela as ts where mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S'  intersect select mp.codmateriaprima,ts.nombretacosuela from tacosuela as ts, tallatacosuela as tts, materiaprima as mp where ts.codtacosuela=tts.tacosuela_fk and mp.codmateriaprima=ts.materiaprima_fk and tts.talla_fk ilike '%37%'
            //select  mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,tts.talla_fk, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela,tts.codtallatacosuela, um.codunidadmedida  from materiaprima as mp, insumo as i, unidadmedida as um  , tacosuela as ts, tallatacosuela as tts, talla as t  where i.codinsumo=mp.insumo_fk and um.codunidadmedida=mp.unidadmedida_fk   and mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S' and ts.codtacosuela=tts.tacosuela_fk and t.codtalla=tts.talla_fk  and tts.talla_fk ilike  '%36%' 
         } 
        if(categoria.equals("Taco")||categoria.equals("Total"))
        {
        //..Taco
           String join="", orderby=" order by mp.codmateriaprima ";
            if(criterioConsulta.equals("Nombre"))
            {                   
                like=" mp.nombretacosuela like ";
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
            }   
            else if(criterioConsulta.equals("Tamanio"))
            {   
                join=" LEFT OUTER JOIN mp.tallatacosuelaList tts ";
                like+=" tts.tallaFk.codtalla like ";                
                if(coincidencia.equals("todas"))
                    like+=" \'%"+consultar+"%\' ";
                else if(coincidencia.equals("exacta"))
                    like+=" \'"+consultar+"\' ";
                else if(coincidencia.equals("inicial"))
                    like+=" \'"+consultar+"%\' ";
                else if(coincidencia.equals("final"))
                    like+=" \'%"+consultar+"\' ";
//                intersect+=" intersect "+query+"  mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela, um.codunidadmedida "+from+" ,tacosuela as ts, tallatacosuela as tts "+where+" and ts.codtacosuela=tts.tacosuela_fk and mp.codmateriaprima=ts.materiaprima_fk ";
            }
            String querytaco=query+" mp ";
            String fromtaco=" from Tacosuela as mp ";
            String wheretaco=" where mp.tipo='T' ";
            if(!like.equals(""))
            {
                wheretaco+=" and ";
            }            
            System.out.println("--------------La consulta es : "+querytaco+fromtaco+join+wheretaco+like+orderby);
            
                
            List<Tacosuela> lista=this.tacosuelaController.findTacosuelaWhereOrderBy(querytaco+fromtaco+join+wheretaco+like+orderby, todo, maxResultados, primerResultado);            
            String codmateriaprima="";

            for(int j=0;j<lista.size();j++)
            {
                Tacosuela ts=lista.get(j);
                String codmateriaprima1=ts.getCodmateriaprima();
                if(!codmateriaprima.equals(codmateriaprima1))
                {
                    String esActivo="Inactivo";
                    if(ts.getActivo())
                        esActivo="Activo";

                    listaTaco.add(new tablaTaco(ts.getCodmateriaprima(), 
                                                ts.getInsumoFk().getNombreinsumo(), 
                                                ts.getNombretacosuela(),
                                                ts.getUnidadmedidaFk().getAbreviatura(),                        
                                                JsfUtil.convertirFecha(ts.getFechacreacion()),                         
                                                esActivo,                      
                                                ts.getInsumoFk().getCodinsumo(),                         
                                                ts.getUnidadmedidaFk().getCodunidadmedida())); 
                    codmateriaprima=codmateriaprima1;
                }
            }                       
        }        
        listaRetorno.add(listaAgregado);
        listaRetorno.add(listaCuero);
        listaRetorno.add(listaForro);
        listaRetorno.add(listaSuela);
        listaRetorno.add(listaTaco);
        return listaRetorno;
    }
    
    public List<String> consultarDatoMateriaPrima(String categoria,String codMateriaPrima)
    {
        List<String>listaRetorno=new ArrayList<String>();
        
        String query=" select ";
        String from=" from ";
        String where=" where  ";
        if(categoria.equals("Agregado")||categoria.equals("AgregadoActualizar"))
        {
        //..Agregado      
            
            Agregado ag=this.agregadoController.findAgregado(codMateriaPrima);
            
            listaRetorno.add("              Codigo:"+ag.getCodmateriaprima());
            listaRetorno.add("              Insumo:"+ag.getInsumoFk().getNombreinsumo());
            listaRetorno.add("Nombre Agregado/Otro:"+ag.getNombremateriaprima());
            String unimed="       Unidad Medida:"+ag.getUnidadmedidaFk().getNombreunimedida();
            if(!categoria.equals("AgregadoActualizar"))
                unimed+=" ("+ag.getUnidadmedidaFk().getAbreviatura()+" )";
            listaRetorno.add(unimed);
            listaRetorno.add("         Descripción:"+ag.getDescripcion());
            listaRetorno.add("   Fecha de Creación:"+ag.getFechacreacion());
            String esActivo="Inactivo";
            if(ag.getActivo())
                esActivo="Activo";
            listaRetorno.add("              Estado:"+esActivo);            
            

        } 
        if(categoria.equals("Cuero")||categoria.equals("CueroActualizar"))
        {
        //..Cuero
            
            Cuero cu=this.cueroController.findCuero(codMateriaPrima);
            
            listaRetorno.add("              Codigo:"+cu.getCodmateriaprima());
            listaRetorno.add("              Insumo:"+cu.getInsumoFk().getNombreinsumo());
            listaRetorno.add("        Nombre Cuero:"+cu.getNombrecuero());
            listaRetorno.add("               Color:"+cu.getColor());
            listaRetorno.add("             Textura:"+cu.getTextura());
            String unimed="       Unidad Medida:"+cu.getUnidadmedidaFk().getNombreunimedida();
            if(!categoria.equals("CueroActualizar"))
                unimed+=" ("+cu.getUnidadmedidaFk().getAbreviatura()+")";
            listaRetorno.add(unimed);            
            listaRetorno.add("         Descripción:"+cu.getDescripcion());
            listaRetorno.add("   Fecha de Creación:"+cu.getFechacreacion());
            String esActivo="Inactivo";
            if(cu.getActivo())
                esActivo="Activo";
            listaRetorno.add("              Estado:"+esActivo);
            

        } 
        if(categoria.equals("Forro")||categoria.equals("ForroActualizar"))
        {
        //..Forro
    
            Forro fo=this.forroController.findForro(codMateriaPrima);
            
            listaRetorno.add("              Codigo:"+fo.getCodmateriaprima());
            listaRetorno.add("              Insumo:"+fo.getInsumoFk().getNombreinsumo());
            listaRetorno.add("       Tipo de Forro:"+fo.getTipoforro());
            String unimed="       Unidad Medida:"+fo.getUnidadmedidaFk().getNombreunimedida();
            if(!categoria.equals("ForroActualizar"))
                unimed+=" ("+fo.getUnidadmedidaFk().getAbreviatura()+")";
            listaRetorno.add(unimed);            
            listaRetorno.add("         Descripción:"+fo.getDescripcion());
            listaRetorno.add("   Fecha de Creación:"+fo.getFechacreacion());
            String esActivo="Inactivo";
            if(fo.getActivo())
                esActivo="Activo";
            listaRetorno.add("              Estado:"+esActivo);                                               
        } 
        if(categoria.equals("Suela")||categoria.equals("Taco")||categoria.equals("SuelaActualizar")||categoria.equals("TacoActualizar"))
        {
        //..Suela y taco            
            //      
            TallatacosuelaJpaController tacosuelaController=new TallatacosuelaJpaController();
            List <Tallatacosuela> tts=tacosuelaController.findTallatacosuelaWhereOrderBy("select mp from Tallatacosuela as mp where mp.tacosuelaFk.codmateriaprima ='"+codMateriaPrima+"' order by mp.tallaFk.codtalla", true, -1, -1);
            listaRetorno.add("              Codigo:"+tts.get(0).getTacosuelaFk().getCodmateriaprima());
            listaRetorno.add("              Insumo:"+tts.get(0).getTacosuelaFk().getInsumoFk().getNombreinsumo());
            if(categoria.equals("Taco")||categoria.equals("TacoActualizar"))
            {
            listaRetorno.add("         Nombre Taco:"+tts.get(0).getTacosuelaFk().getNombretacosuela()); 
                String act=" ",codtts="";
                if(categoria.equals("TacoActualizar"))
                {
                    act="/"; //codtts="|"+tts.get(0).getCodtallatacosuela();
                }
            listaRetorno.add(act+"  Tamaños Asociados:"+tts.get(0).getTallaFk().getCodtalla());
                for(int i=1;i<tts.size();i++)
                {
                    //if(categoria.equals("TacoActualizar"))
                    //    codtts="|"+tts.get(i).getCodtallatacosuela();
                    listaRetorno.add(act+"                    "+tts.get(i).getTallaFk().getCodtalla());
                }
            }
            else
            {                         
            listaRetorno.add("        Nombre Suela:"+tts.get(0).getTacosuelaFk().getNombretacosuela());
                String act=" ",codtts="";
                if(categoria.equals("SuelaActualizar"))
                {
                    act="/"; //codtts="|"+tts.get(0).getCodtallatacosuela();
                }
            listaRetorno.add(act+"   Tallas Asociadas:"+tts.get(0).getTallaFk().getCodtalla()+codtts);
                for(int i=1;i<tts.size();i++)
                {
                    //if(categoria.equals("SuelaActualizar"))
                    //    codtts="|"+tts.get(i).getCodtallatacosuela();
                    listaRetorno.add(act+"                    "+tts.get(i).getTallaFk().getCodtalla()+codtts);
                }
            } 
            String unimed="       Unidad Medida:"+tts.get(0).getTacosuelaFk().getUnidadmedidaFk().getNombreunimedida();
            if(!(categoria.equals("SuelaActualizar")||categoria.equals("TacoActualizar")))
                unimed+=" ("+tts.get(0).getTacosuelaFk().getUnidadmedidaFk().getAbreviatura()+")";
            listaRetorno.add(unimed);  
            listaRetorno.add("         Descripción:"+tts.get(0).getTacosuelaFk().getDescripcion());
            listaRetorno.add("   Fecha de Creación:"+tts.get(0).getTacosuelaFk().getFechacreacion());
            String esActivo="Inactivo";
            if(tts.get(0).getTacosuelaFk().getActivo())
                esActivo="Activo";
            listaRetorno.add("              Estado:"+esActivo);
            }                 
                   
        return listaRetorno;
    }
    public List<Object> modificarMateriaPrima(String categoria)
    {
        List listaRespuesta=new ArrayList<Object>();
         
        try {    
                      
                if(categoria.equals("Agregado"))
                {                   
                    System.out.println(this.getAgregado().getCodmateriaprima()+this.getAgregado().getNombremateriaprima());
                    this.agregadoController.edit(this.getAgregado());
                }
                else if(categoria.equals("Cuero"))
                {
                    this.cueroController.edit(this.getCuero());
                } 
                else if(categoria.equals("Forro"))
                {                    
                    this.forroController.edit(this.getForro());
                }
                else if(categoria.equals("TacoSuela"))
                {
//                    this.getTacosuela().setCodmateriaprima(numerocliente);                    
                    TablaindiceJpaController tic=new TablaindiceJpaController();
                                        
                    String numerotallatacosuela=tic.generaCodigo("tallatacosuela", "TT");
                    for(int i=0;i<this.getTacosuela().getTallatacosuelaList().size();i++)
                    {    
                        Tallatacosuela tts=this.getTacosuela().getTallatacosuelaList().get(i);
                        if(tts.getCodtallatacosuela()==null)
                        {                            
                            this.getTacosuela().getTallatacosuelaList().get(i).setCodtallatacosuela(numerotallatacosuela);                            
                            numerotallatacosuela=tic.creaNuevoCodigo(numerotallatacosuela, "TT");
                        }                                                                        
                    }

                    this.tacosuelaController.edit(this.getTacosuela());
                }
            
            listaRespuesta.add(true);
            listaRespuesta.add("Actualizado datos de Materia Prima!");
            return listaRespuesta;
        } catch (NonexistentEntityException ex) {
            //System.out.println(" primero por aca!!!! mensaje = "+ex.getMessage());
            listaRespuesta.add(false);
            listaRespuesta.add(ex.getMessage());//"El cliente que desea crear ya existe!");
            ex.printStackTrace();
//            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RollbackFailureException ex) {
            listaRespuesta.add(false);
            listaRespuesta.add("Error al actualizar datos de Materia Prima!");                       
            ex.printStackTrace();          
//            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
        } 
        catch (Exception ex) {
            listaRespuesta.add(false);
            listaRespuesta.add("Error al actualizar datos de Materia Prima!");
            //System.out.println("-------------&&&&&&&&&& mensaje = "+ex.getMessage());           
            ex.printStackTrace();            
            Logger.getLogger(ClienteBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        
         return listaRespuesta;
        /*if(this.verificarLogin())
        {
            
            GestorBaseDatos gbd=new GestorBaseDatos();
            this.setearConexion(gbd);
            //obtener fecha y hora del servidor
            List fechaList=gbd.select("SELECT TIMESTAMP WITHOUT TIME ZONE \'now\'");
            String fechaHora=(fechaList.get(0).toString());
            this.setFechaCreacion(fechaHora);
            
            List <String> datosLista= new ArrayList<String>();
            String respuestaInsert; //es la respuesta del insert si se almaceno o no los datos
            
            datosLista.add(0,"\'"+this.getCodMateriaPrima()+"\'");

            datosLista.add(1,"\'"+this.getDescripcion()+"\'");                
            datosLista.add(2,"\'"+this.getFechaCreacion()+"\'"); 
            datosLista.add(3,""+this.isActivo()+""); 
            datosLista.add(4,"\'"+this.getTipo()+"\'"); 
            datosLista.add(5,"\'"+this.getInsumo_fk()+"\'");
            datosLista.add(6,""+this.getUnidadMedida_fk()+"");
            
            datosLista.add(7,this.usuarioBean.getUsuario().getCodUsuario());

            datosLista.add(8,"\'"+fechaHora+"\'");
            
            String condicion="codMateriaPrima=\'"+this.getCodMateriaPrima()+"\'";
            //Almacenar datos en la tabla MateriaPrima
            respuestaInsert=""+gbd.update("MateriaPrima",datosLista,condicion,true);
            System.out.println("///////// respuestaInsert1 ="+respuestaInsert+" condicion="+condicion);
            if(respuestaInsert.equals("Registro actualizado correctamente"))
            {
                if(categoria.equals("Agregado"))
                {
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
                    
                    datosLista1.add(0,"\'"+this.getCodAgregado()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreMateriaPrimaAgrgado()+"\'");   
                    
                    this.setMateriaPrima_fkAgrgado(this.getCodMateriaPrima());
                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkAgrgado()+"\'"); 
                    
                    condicion="codAgregado=\'"+this.getCodAgregado()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\'";
                    //Almacenar datos en la tabla Agregado
                    respuestaInsert1=""+gbd.update("Agregado",datosLista1,condicion,false);
                    System.out.println("///////// respuestaInsert1 ="+respuestaInsert1+" condicion="+condicion);
                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
                    {
                        //gbd.commit();
                        //gbd.desconectar();
                        this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
                        //this.borrarDatos();                           
                        return true;
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al actualizar los datos","");
                    }                                
                }
                else if(categoria.equals("Cuero")) {
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    datosLista1.add(0,"\'"+this.getCodCuero()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreCuero()+"\'"); 
                    datosLista1.add(2,"\'"+this.getColorCuero()+"\'");
                    datosLista1.add(3,"\'"+this.getTexturaCuero()+"\'");
                    
                    this.setMateriaPrima_fkCuero(this.getCodMateriaPrima());
                    datosLista1.add(4,"\'"+this.getMateriaPrima_fkCuero()+"\'"); 
                    
                    condicion="codCuero=\'"+this.getCodCuero()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\'";
                    
                    //Almacenar datos en la tabla Cuero
                    respuestaInsert1=""+gbd.update("Cuero",datosLista1,condicion,true);

                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
                    {
                        //gbd.commit();
                        //gbd.desconectar();
                        this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
                        //this.borrarDatos();                           
                        return true;
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al actualizar los datos","");
                    }                                
                }
                else if(categoria.equals("Forro")){
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos

                    datosLista1.add(0,"\'"+this.getCodForro()+"\'");

                    datosLista1.add(1,"\'"+this.getTipoForro()+"\'"); 
                                        
                    this.setMateriaPrima_fkForro(this.getCodMateriaPrima());
                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkForro()+"\'"); 
                    
                    condicion="codForro=\'"+this.getCodForro()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\'";
                    //Almacenar datos en la tabla forro
                    respuestaInsert1=""+gbd.update("Forro",datosLista1,condicion,true);

                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
                    {
                        //gbd.commit();
                        //gbd.desconectar();
                        this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
                        //this.borrarDatos();                           
                        return true;
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al actualizar los datos","");
                    }
                }
                else if(categoria.equals("Suela")){
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
                                       
                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
                                        
                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
                    
                    condicion=" codTacoSuela=\'"+this.getCodTacoSuela()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\' ";
                    //Almacenar datos en la tabla Taco Suela
                    respuestaInsert1=""+gbd.update("TacoSuela",datosLista1,condicion,true);

                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
                    {
                        int contadorFallo=0;
                        boolean seAlmaceno=false;
                        boolean seElimino=false;
                        boolean hayCambioTallas=false;
                        //Actualizacion del detalle
                           
                        //1.-a realizarse la consulta si esta en el detalle
                            //2a.-si esta en el detalle y en la lista finaliza la accion
                            //2b.-si esta en el detalle y no en la lista, se elimina de la base de datos
                            //3c.-si esta no esta en el detalle y està en la lista se crea un nuevo detalle en la bd
                            
                            //consulta a la tabla tallatacosuela para obtener los detalles de tacosuela y talla
//                        List<List> listaTablaTallaTacoSuela=this.getTallatacosuela().consultarTallaTacoSuela(" where tacosuela_fk= \'"+this.getCodTacoSuela() +"\' ","");
                        this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
                        List<TallaTacoSuela>  listaTablaTallaTacoSuela=(List<TallaTacoSuela>)((this.getTallatacosuela().consultarTallaTacoSuela(" where tacosuela_fk= \'"+this.getCodTacoSuela() +"\' ","").get(0)));  
                        
                        for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
                        {
                            boolean esAsociado=false;
                            for(int i=0;i<this.getListatallatacosuela().size();i++)
                            {
                                if(listaTablaTallaTacoSuela.get(j).getTalla_fk().equals(this.getListatallatacosuela().get(i).getTalla_fk()))
                                {
                                    esAsociado=true;
                                    i=this.getListatallatacosuela().size();
                                }
                            }
                            if(esAsociado==false)
                            {
                                if(this.getTallatacosuela().eliminarTallaTacoSuela(listaTablaTallaTacoSuela.get(j).getCodTallaTacoSuela()))
                                    seElimino=true;
                                hayCambioTallas=true;
                            }
                        }
                        
                        for(int i=0;i<this.getListatallatacosuela().size();i++)
                        {                            
                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
                            boolean estaAsociada=false;
                            for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
                            {
                                if(this.getListatallatacosuela().get(i).getTalla_fk().equals(((TallaTacoSuela)listaTablaTallaTacoSuela.get(j)).getTalla_fk()))
                                {
                                    estaAsociada=true;
                                    j=listaTablaTallaTacoSuela.size();
                                }
                            }
                            if(estaAsociada==false)
                            {
                            //Generacion del primary key                                                        
                                this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            

                                this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
                                //this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
                                System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
                                this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
                                                                            this.getListatallatacosuela().get(i).getTalla_fk(), 
                                                                            this.getListatallatacosuela().get(i).getTacoSuela_fk(),
                                                                            this.getUsuarioBean().getUsuario().getCodUsuario(),
                                                                            fechaHora);
                                //Almacenar datos en la tabla tallaTacoSuela
                                if(this.getTallatacosuela().crearTallaTacoSuela())
                                {
                                    seAlmaceno=true;
                                    hayCambioTallas=true;
                                }
                                else
                                {
                                    contadorFallo=i;
                                    seAlmaceno=false;
                                    i=this.getListatallatacosuela().size();
                                }    
                            }
                        }
                        if(seAlmaceno||seElimino||(!(hayCambioTallas)))                      
                        {
                            //gbd.commit();
                            //gbd.desconectar();
                            this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
                            //this.borrarDatos();                           
                            return true;
                        }
                        else
                        {
                            //agregar el codigo para borrar los datos de la tabla materia prima
                            //gbd.rollback();
                            //gbd.desconectar();
                            mostrarMensaje("fatal","Error al actualizar los datos","");
                        }
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al actualizar los datos","");
                    }
                    
                }
                else if(categoria.equals("Taco"))
                {                    
                    List <String> datosLista1= new ArrayList<String>();
                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
                    
                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");

                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
                                        
                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
                    
                    condicion=" codTacoSuela=\'"+this.getCodTacoSuela()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\' ";
                    //Almacenar datos en la tabla Taco Suela
                    respuestaInsert1=""+gbd.update("TacoSuela",datosLista1,condicion,true);

                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
                    {
                        int contadorFallo=0;
                        boolean seAlmaceno=false;
                        boolean seElimino=false;
                        boolean hayCambioTallas=false;
                        //Actualizacion del detalle
                           
                        //1.-a realizarse la consulta si esta en el detalle
                            //2a.-si esta en el detalle y en la lista finaliza la accion
                            //2b.-si esta en el detalle y no en la lista, se elimina de la base de datos
                            //3c.-si esta no esta en el detalle y està en la lista se crea un nuevo detalle en la bd
                         
                        this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
                        List<TallaTacoSuela>  listaTablaTallaTacoSuela=(List<TallaTacoSuela>)((this.getTallatacosuela().consultarTallaTacoSuela(" where tacosuela_fk= \'"+this.getCodTacoSuela() +"\' ","").get(0)));  
                        
                        for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
                        {
                            boolean esAsociado=false;
                            for(int i=0;i<this.getListatallatacosuela().size();i++)
                            {
                                if(listaTablaTallaTacoSuela.get(j).getTalla_fk().equals(this.getListatallatacosuela().get(i).getTalla_fk()))
                                {
                                    esAsociado=true;
                                    i=this.getListatallatacosuela().size();
                                }
                            }
                            if(esAsociado==false)
                            {
                                if(this.getTallatacosuela().eliminarTallaTacoSuela(listaTablaTallaTacoSuela.get(j).getCodTallaTacoSuela()))
                                    seElimino=true;
                                hayCambioTallas=true;
                            }
                        }
                         
                        for(int i=0;i<this.getListatallatacosuela().size();i++)
                        {                                                       
                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
                            boolean estaAsociada=false;
                            for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
                            {
                                if(this.getListatallatacosuela().get(i).getTalla_fk().equals(((TallaTacoSuela)listaTablaTallaTacoSuela.get(j)).getTalla_fk()))
                                {
                                    estaAsociada=true;
                                    j=listaTablaTallaTacoSuela.size();
                                }
                            }
                            if(estaAsociada==false)
                            {
                                //Generacion del primary key
                                this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
                                //this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
                                System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
                                this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
                                this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
                                                                            this.getListatallatacosuela().get(i).getTalla_fk(), 
                                                                            this.getListatallatacosuela().get(i).getTacoSuela_fk(),
                                                                            this.getUsuarioBean().getUsuario().getCodUsuario(),
                                                                            fechaHora);
                                //Almacenar datos en la tabla tallaTacoSuela
                                if(this.getTallatacosuela().crearTallaTacoSuela())
                                {
                                    seAlmaceno=true;
                                    hayCambioTallas=true;
                                }
                                else
                                {
                                    contadorFallo=i;
                                    seAlmaceno=false;
                                    i=this.getListatallatacosuela().size();
                                }                            
                            }
                        }
                        if(seAlmaceno||seElimino||(!(hayCambioTallas)))                      
                        {
                            //gbd.commit();
                            //gbd.desconectar();
                            this.mostrarMensaje("info","Actualizado los Datos Materia Prima!","");
                            //this.borrarDatos();                           
                            return true;
                        }
                        else
                        {
                            //agregar el codigo para borrar los datos de la tabla materia prima
                            //gbd.rollback();
                            //gbd.desconectar();
                            mostrarMensaje("fatal","Error al actualizar los datos","");
                        }
                    }
                    else
                    {
                        //agregar el codigo para borrar los datos de la tabla materia prima en caso de que no se hayan almacenado los datosde las tablas subsiguientes
                        //gbd.rollback();
                        //gbd.desconectar();
                        mostrarMensaje("fatal","Error al actualizar los datos","");
                    }
                    
                }
                
                //this.borrarDatos();
                //return true;
            }
            else
            {
                //gbd.rollback();
                //gbd.desconectar();
                this.mostrarMensaje("fatal","Error al actualizar los datos","");
            }                
        }
        else
        {
            this.mostrarMensaje("error","Error: La Materia Prima que desea ingresar ya existe","");
            //this.borrarDatos();     
            return true;
        } */                               
//        return false;
    }
    public List<Object> eliminarMateriaPrima(String categoria, String codMateriaPrima) 
    {
        List listaRespuesta=new ArrayList<Object>();        
        
        //verificar que la materia prima no este asociada con la estructura de materiales y de uso en el inventario
        //select count(mp.codmateriaprima) from materiaprima as mp, estructuramaterialesbom bom where mp.codmateriaprima=bom.materiaprima_fk and mp.codmateriaprima=''
        
//        enBOM=Integer.parseInt((gbd.select("select count(Codbom) from estructuramaterialesbom where  materiaprima_fk= \'"+codMateriaPrima+"\'")).get(0).toString()); 
        if(categoria.equals("Agregado"))
        {  
            try {                                    
                this.agregadoController.destroy(codMateriaPrima);
                listaRespuesta.add(true);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+" eliminada!");
                return listaRespuesta;
            } catch (NonexistentEntityException ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+", que desea eliminar no existe!");
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);        
            } catch (Exception ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Error al eliminar Materia Prima "+codMateriaPrima+"! "+ex);
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);
            }
            return listaRespuesta;
//            enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  agregado_fk= \'"+codigo+"\'")).get(0).toString()); 
//            if((enBOM==0)&&(enInventario==0))
//            {
//                if(gbd.delete("Agregado","codAgregado", "\'"+codigo+"\'",true))
//                {
//                    if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                        return true;
//                    }                        
//                }
//            }
        }
        else if(categoria.equals("Cuero"))
        {
            try {                                    
                this.cueroController.destroy(codMateriaPrima);
                listaRespuesta.add(true);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+" eliminada!");
                return listaRespuesta;
            } catch (NonexistentEntityException ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+", que desea eliminar no existe!");
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);        
            } catch (Exception ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Error al eliminar Materia Prima "+codMateriaPrima+"! "+ex);
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);
            }
            return listaRespuesta;
//            enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  Cuero_fk= \'"+codigo+"\'")).get(0).toString()); 
//            if((enBOM==0)&&(enInventario==0))
//            {
//                if(gbd.delete("Cuero","codCuero", "\'"+codigo+"\'",true))
//                {
//                    if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                        return true;
//                    }                        
//                }
//            }
        }
        else if(categoria.equals("Forro"))
        {
            try {                                    
                this.forroController.destroy(codMateriaPrima);
                listaRespuesta.add(true);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+" eliminada!");
                return listaRespuesta;
            } catch (NonexistentEntityException ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+", que desea eliminar no existe!");
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);        
            } catch (Exception ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Error al eliminar Materia Prima "+codMateriaPrima+"! "+ex);
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);
            }
            return listaRespuesta;
//            enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  Forro_fk= \'"+codigo+"\'")).get(0).toString()); 
//            if((enBOM==0)&&(enInventario==0))
//            {
//                if(gbd.delete("Forro","codForro", "\'"+codigo+"\'",true))
//                {
//                    if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                        return true;
//                    }                        
//                }
//            }
        }
        else if((categoria.equals("Suela"))||(categoria.equals("Taco")))
        {   
            try {                                    
                this.tacosuelaController.destroy(codMateriaPrima);
                listaRespuesta.add(true);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+" eliminada!");
                return listaRespuesta;
            } catch (NonexistentEntityException ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Materia Prima "+codMateriaPrima+", que desea eliminar no existe!");
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);        
            } catch (Exception ex) {
                listaRespuesta.add(false);
                listaRespuesta.add("Error al eliminar Materia Prima "+codMateriaPrima+"! "+ex);
                ex.printStackTrace();
                Logger.getLogger(HormaBean.class.getName()).log(Level.SEVERE, null, ex);
            }
            return listaRespuesta;
//            enInventario=Integer.parseInt((gbd.select("select count(i.codinventario)  from tacosuela as ts, tallatacosuela as tts, inventario as i where ts.codtacosuela=tts.tacosuela_fk and tts.codtallatacosuela=i.tallatacosuela_fk and tts.tacosuela_fk=\'"+codigo+"\'")).get(0).toString()); 
//            if((enBOM==0)&&(enInventario==0))
//            {
//                if(gbd.delete("TallaTacoSuela","TacoSuela_fk", "\'"+codigo+"\'",true))
//                {
//                    if(gbd.delete("TacoSuela","codTacoSuela", "\'"+codigo+"\'",true))
//                    {
//                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                            return true;
//                        }    
//                    }
//                }
//            }
        }
       /*
        if(this.verificarLogin())
        {
            int enBOM=-1, enInventario=-1;
            GestorBaseDatos gbd=new GestorBaseDatos();
            this.setearConexion(gbd);
            //verificar que la materia prima no este asociada con la estructura de materiales y de uso en el inventario
            //select count(mp.codmateriaprima) from materiaprima as mp, estructuramaterialesbom bom where mp.codmateriaprima=bom.materiaprima_fk and mp.codmateriaprima=''
            enBOM=Integer.parseInt((gbd.select("select count(Codbom) from estructuramaterialesbom where  materiaprima_fk= \'"+codMateriaPrima+"\'")).get(0).toString()); 
            if(categoria.equals("Agregado"))
            {            
                enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  agregado_fk= \'"+codigo+"\'")).get(0).toString()); 
                if((enBOM==0)&&(enInventario==0))
                {
                    if(gbd.delete("Agregado","codAgregado", "\'"+codigo+"\'",true))
                    {
                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
                            return true;
                        }                        
                    }
                }
            }
            else if(categoria.equals("Cuero"))
            {            
                enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  Cuero_fk= \'"+codigo+"\'")).get(0).toString()); 
                if((enBOM==0)&&(enInventario==0))
                {
                    if(gbd.delete("Cuero","codCuero", "\'"+codigo+"\'",true))
                    {
                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
                            return true;
                        }                        
                    }
                }
            }
            else if(categoria.equals("Forro"))
            {            
                enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  Forro_fk= \'"+codigo+"\'")).get(0).toString()); 
                if((enBOM==0)&&(enInventario==0))
                {
                    if(gbd.delete("Forro","codForro", "\'"+codigo+"\'",true))
                    {
                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
                            return true;
                        }                        
                    }
                }
            }
            else if((categoria.equals("Suela"))||(categoria.equals("Taco")))
            {            
                enInventario=Integer.parseInt((gbd.select("select count(i.codinventario)  from tacosuela as ts, tallatacosuela as tts, inventario as i where ts.codtacosuela=tts.tacosuela_fk and tts.codtallatacosuela=i.tallatacosuela_fk and tts.tacosuela_fk=\'"+codigo+"\'")).get(0).toString()); 
                if((enBOM==0)&&(enInventario==0))
                {
                    if(gbd.delete("TallaTacoSuela","TacoSuela_fk", "\'"+codigo+"\'",true))
                    {
                        if(gbd.delete("TacoSuela","codTacoSuela", "\'"+codigo+"\'",true))
                        {
                            if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
                                return true;
                            }    
                        }
                    }
                }
            }
        }*/
        return listaRespuesta;
    }
    //------------------------------------------------------------------------//
    //Clases para administracion de las tablas de consulta
    public static class tablaAgregado{
        private String codMateriaPrima;
        private String fechaCreacion;
        private String esActivo;
                
        private String codInsumo;
        private String nombreInsumo;
        
        private int codUnidadMedida;
        private String abreviatura;
        
        private String nombreMateriaPrimaAgregado;

        public tablaAgregado(String codMateriaPrima,String nombreInsumo, String nombreMateriaPrimaAgregado, String abreviatura,String fechaCreacion, String esActivo, String codInsumo, int codUnidadMedida) {
            this.codMateriaPrima = codMateriaPrima;
            this.fechaCreacion = fechaCreacion;
            this.esActivo = esActivo;
            this.codInsumo = codInsumo;
            this.nombreInsumo = nombreInsumo;
            this.codUnidadMedida = codUnidadMedida;
            this.abreviatura = abreviatura;            
            this.nombreMateriaPrimaAgregado = nombreMateriaPrimaAgregado;
        }
        public String getAbreviatura() {
            return abreviatura;
        }

        public void setAbreviatura(String abreviatura) {
            this.abreviatura = abreviatura;
        }
      
        public String getCodInsumo() {
            return codInsumo;
        }

        public void setCodInsumo(String codInsumo) {
            this.codInsumo = codInsumo;
        }

        public String getCodMateriaPrima() {
            return codMateriaPrima;
        }

        public void setCodMateriaPrima(String codMateriaPrima) {
            this.codMateriaPrima = codMateriaPrima;
        }

        public int getCodUnidadMedida() {
            return codUnidadMedida;
        }

        public void setCodUnidadMedida(int codUnidadMedida) {
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getEsActivo() {
            return esActivo;
        }

        public void setEsActivo(String esActivo) {
            this.esActivo = esActivo;
        }

        public String getFechaCreacion() {
            return fechaCreacion;
        }

        public void setFechaCreacion(String fechaCreacion) {
            this.fechaCreacion = fechaCreacion;
        }

        public String getNombreInsumo() {
            return nombreInsumo;
        }

        public void setNombreInsumo(String nombreInsumo) {
            this.nombreInsumo = nombreInsumo;
        }

        public String getNombreMateriaPrimaAgregado() {
            return nombreMateriaPrimaAgregado;
        }

        public void setNombreMateriaPrimaAgregado(String nombreMateriaPrimaAgregado) {
            this.nombreMateriaPrimaAgregado = nombreMateriaPrimaAgregado;
        }                                 
    }
    public static class tablaCuero{
        private String codMateriaPrima;
        
        private String nombreInsumo;
        
        private String nombreCuero;
        private String colorCuero;
        private String textura;
        
        private String abreviatura;
        
        private String fechaCreacion;
        private String esActivo;
                
        private String codCuero;
        private int codUnidadMedida;

        public tablaCuero(String codMateriaPrima, String nombreInsumo, String nombreCuero, String colorCuero, String textura, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, int codUnidadMedida) {
            this.codMateriaPrima = codMateriaPrima;
            this.nombreInsumo = nombreInsumo;
            this.nombreCuero = nombreCuero;
            this.colorCuero = colorCuero;
            this.textura = textura;
            this.abreviatura = abreviatura;
            this.fechaCreacion = fechaCreacion;
            this.esActivo = esActivo;            
            this.codCuero = codCuero;
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getAbreviatura() {
            return abreviatura;
        }

        public void setAbreviatura(String abreviatura) {
            this.abreviatura = abreviatura;
        }

        public String getCodCuero() {
            return codCuero;
        }

        public void setCodCuero(String codCuero) {
            this.codCuero = codCuero;
        }       

        public String getCodMateriaPrima() {
            return codMateriaPrima;
        }

        public void setCodMateriaPrima(String codMateriaPrima) {
            this.codMateriaPrima = codMateriaPrima;
        }

        public int getCodUnidadMedida() {
            return codUnidadMedida;
        }

        public void setCodUnidadMedida(int codUnidadMedida) {
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getColorCuero() {
            return colorCuero;
        }

        public void setColorCuero(String colorCuero) {
            this.colorCuero = colorCuero;
        }

        public String getEsActivo() {
            return esActivo;
        }

        public void setEsActivo(String esActivo) {
            this.esActivo = esActivo;
        }

        public String getFechaCreacion() {
            return fechaCreacion;
        }

        public void setFechaCreacion(String fechaCreacion) {
            this.fechaCreacion = fechaCreacion;
        }

        public String getNombreCuero() {
            return nombreCuero;
        }

        public void setNombreCuero(String nombreCuero) {
            this.nombreCuero = nombreCuero;
        }

        public String getNombreInsumo() {
            return nombreInsumo;
        }

        public void setNombreInsumo(String nombreInsumo) {
            this.nombreInsumo = nombreInsumo;
        }

        public String getTextura() {
            return textura;
        }

        public void setTextura(String textura) {
            this.textura = textura;
        }
    }
    public static class tablaForro{
        private String codMateriaPrima;
        
        private String nombreInsumo;
        
        private String tipoForro;
        
        private String abreviatura;
        
        private String fechaCreacion;
        private String esActivo;
                
        private String codInsumo;
        
        private int codUnidadMedida;

        public tablaForro(String codMateriaPrima, String nombreInsumo, String tipoForro, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, int codUnidadMedida) {
            this.codMateriaPrima = codMateriaPrima;
            this.nombreInsumo = nombreInsumo;
            this.tipoForro = tipoForro;
            this.abreviatura = abreviatura;
            this.fechaCreacion = fechaCreacion;
            this.esActivo = esActivo;
            this.codInsumo = codInsumo;
            
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getAbreviatura() {
            return abreviatura;
        }

        public void setAbreviatura(String abreviatura) {
            this.abreviatura = abreviatura;
        }       

        public String getCodInsumo() {
            return codInsumo;
        }

        public void setCodInsumo(String codInsumo) {
            this.codInsumo = codInsumo;
        }

        public String getCodMateriaPrima() {
            return codMateriaPrima;
        }

        public void setCodMateriaPrima(String codMateriaPrima) {
            this.codMateriaPrima = codMateriaPrima;
        }

        public int getCodUnidadMedida() {
            return codUnidadMedida;
        }

        public void setCodUnidadMedida(int codUnidadMedida) {
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getEsActivo() {
            return esActivo;
        }

        public void setEsActivo(String esActivo) {
            this.esActivo = esActivo;
        }

        public String getFechaCreacion() {
            return fechaCreacion;
        }

        public void setFechaCreacion(String fechaCreacion) {
            this.fechaCreacion = fechaCreacion;
        }

        public String getNombreInsumo() {
            return nombreInsumo;
        }

        public void setNombreInsumo(String nombreInsumo) {
            this.nombreInsumo = nombreInsumo;
        }

        public String getTipoForro() {
            return tipoForro;
        }

        public void setTipoForro(String tipoForro) {
            this.tipoForro = tipoForro;
        }
    }
    public static class tablaSuela{
        private String codMateriaPrima;
        
        private String nombreInsumo;
        
        private String nombreSuela;
         
        private String abreviatura;
        
        private String fechaCreacion;
        private String esActivo;
                
        private String codInsumo;
        
        private int codUnidadMedida;

        public tablaSuela(String codMateriaPrima, String nombreInsumo, String nombreSuela, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, int codUnidadMedida) {
            this.codMateriaPrima = codMateriaPrima;
            this.nombreInsumo = nombreInsumo;
            this.nombreSuela = nombreSuela; 
            this.abreviatura = abreviatura;
            this.fechaCreacion = fechaCreacion;
            this.esActivo = esActivo;
            this.codInsumo = codInsumo;
             
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getAbreviatura() {
            return abreviatura;
        }

        public void setAbreviatura(String abreviatura) {
            this.abreviatura = abreviatura;
        }

        public String getCodInsumo() {
            return codInsumo;
        }

        public void setCodInsumo(String codInsumo) {
            this.codInsumo = codInsumo;
        }

        public String getCodMateriaPrima() {
            return codMateriaPrima;
        }

        public void setCodMateriaPrima(String codMateriaPrima) {
            this.codMateriaPrima = codMateriaPrima;
        }
      

        public int getCodUnidadMedida() {
            return codUnidadMedida;
        }

        public void setCodUnidadMedida(int codUnidadMedida) {
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getEsActivo() {
            return esActivo;
        }

        public void setEsActivo(String esActivo) {
            this.esActivo = esActivo;
        }

        public String getFechaCreacion() {
            return fechaCreacion;
        }

        public void setFechaCreacion(String fechaCreacion) {
            this.fechaCreacion = fechaCreacion;
        }

        public String getNombreInsumo() {
            return nombreInsumo;
        }

        public void setNombreInsumo(String nombreInsumo) {
            this.nombreInsumo = nombreInsumo;
        }

        public String getNombreSuela() {
            return nombreSuela;
        }

        public void setNombreSuela(String nombreSuela) {
            this.nombreSuela = nombreSuela;
        }
            
    }
    public static class tablaTaco{
        private String codMateriaPrima;
        
        private String nombreInsumo;
        
        private String nombreTaco;
        
        private String abreviatura;
        
        private String fechaCreacion;
        private String esActivo;
                
        private String codInsumo;
        
        private int codUnidadMedida;

        public tablaTaco(String codMateriaPrima, String nombreInsumo, String nombreTaco, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, int codUnidadMedida) {
            this.codMateriaPrima = codMateriaPrima;
            this.nombreInsumo = nombreInsumo;
            this.nombreTaco = nombreTaco;            
            this.abreviatura = abreviatura;
            this.fechaCreacion = fechaCreacion;
            this.esActivo = esActivo;
            this.codInsumo = codInsumo;
            
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getAbreviatura() {
            return abreviatura;
        }

        public void setAbreviatura(String abreviatura) {
            this.abreviatura = abreviatura;
        }

        public String getCodInsumo() {
            return codInsumo;
        }

        public void setCodInsumo(String codInsumo) {
            this.codInsumo = codInsumo;
        }

        public String getCodMateriaPrima() {
            return codMateriaPrima;
        }

        public void setCodMateriaPrima(String codMateriaPrima) {
            this.codMateriaPrima = codMateriaPrima;
        }

       
        public int getCodUnidadMedida() {
            return codUnidadMedida;
        }

        public void setCodUnidadMedida(int codUnidadMedida) {
            this.codUnidadMedida = codUnidadMedida;
        }

        public String getEsActivo() {
            return esActivo;
        }

        public void setEsActivo(String esActivo) {
            this.esActivo = esActivo;
        }

        public String getFechaCreacion() {
            return fechaCreacion;
        }

        public void setFechaCreacion(String fechaCreacion) {
            this.fechaCreacion = fechaCreacion;
        }

        public String getNombreInsumo() {
            return nombreInsumo;
        }

        public void setNombreInsumo(String nombreInsumo) {
            this.nombreInsumo = nombreInsumo;
        }

        public String getNombreTaco() {
            return nombreTaco;
        }

        public void setNombreTaco(String nombreTaco) {
            this.nombreTaco = nombreTaco;
        }
        
    }
    
    //------------------------------------------------------------------------//
   
}
//
//
//
//package mrp.beans;
//
//import java.io.Serializable;
//import java.util.ArrayList;
//import java.util.List;
//import javax.faces.application.FacesMessage;
//import javax.faces.bean.ManagedBean;
//import javax.faces.bean.ManagedProperty;
//import javax.faces.bean.SessionScoped;
//import javax.faces.context.FacesContext;
//import mrp.entity.*;
//import mrp.login.Login;
//import mrp.web.MateriaPrimaWeb;
//
///**
// *
// * @author root
// */
//@ManagedBean(name="materiaprima")
//@SessionScoped
//public class MateriaPrimaBean implements Serializable{
//    @ManagedProperty("#{usuarioBean}")
//    private UsuarioBean usuarioBean;
//    @ManagedProperty("#{login}")
//    private Login login;
//    @ManagedProperty("#{insumo}")
//    private InsumoBean insumo;  
//    @ManagedProperty("#{unidadmedida}")
//    private UnidadMedidaBean unidadmedida;
//    @ManagedProperty("#{talla}")
//    private TallaBean talla;
//    @ManagedProperty("#{materiaprimaweb}")
//    private MateriaPrimaWeb materiaprimaweb;
//    
//    private TallaTacoSuelaBean tallatacosuela=new TallaTacoSuelaBean();
//    
//    private MateriaPrima materiaprima;
//    private Agregado agregado;
//    private Cuero cuero;
//    private Forro forro;
//    private TacoSuela tacosuela=new TacoSuela();
//    
//    private List <TallaTacoSuela> listatallatacosuela;
//        
//    
//    //-------------------- metodos getters and setters-----------------------
//
//    public TallaTacoSuelaBean getTallatacosuela() {
//        return tallatacosuela;
//    }
//
//    public void setTallatacosuela(TallaTacoSuelaBean tallatacosuela) {
//        this.tallatacosuela = tallatacosuela;
//    }    
//    
//    public List<TallaTacoSuela> getListatallatacosuela() {
//        return listatallatacosuela;
//    }
//
//    public void setListatallatacosuela(List<TallaTacoSuela> listatallatacosuela) {
//        this.listatallatacosuela = listatallatacosuela;
//    }
//
//    public MateriaPrima getMateriaprima() {
//        return materiaprima;
//    }
//
//    public void setMateriaprima(MateriaPrima materiaprima) {
//        this.materiaprima = materiaprima;
//    }
//    public Agregado getAgregado() {
//        return agregado;
//    }
//
//    public void setAgregado(Agregado agregado) {
//        this.agregado = agregado;
//    }
//
//    public Cuero getCuero() {
//        return cuero;
//    }
//
//    public void setCuero(Cuero cuero) {
//        this.cuero = cuero;
//    }
//
//    public Forro getForro() {
//        return forro;
//    }
//
//    public void setForro(Forro forro) {
//        this.forro = forro;
//    }
//
//    public Login getLogin() {
//        return login;
//    }
//
//    public void setLogin(Login login) {
//        this.login = login;
//    }
//
//    public MateriaPrimaWeb getMateriaprimaweb() {
//        return materiaprimaweb;
//    }
//
//    public void setMateriaprimaweb(MateriaPrimaWeb materiaprimaweb) {
//        this.materiaprimaweb = materiaprimaweb;
//    }
//
//    public TacoSuela getTacosuela() {
//        return tacosuela;
//    }
//
//    public void setTacosuela(TacoSuela tacosuela) {
//        this.tacosuela = tacosuela;
//    }
//
//    public UsuarioBean getUsuarioBean() {
//        return usuarioBean;
//    }
//
//    public void setUsuarioBean(UsuarioBean usuarioBean) {
//        this.usuarioBean = usuarioBean;
//    }
//
//    public InsumoBean getInsumo() {
//        return insumo;
//    }
//
//    public void setInsumo(InsumoBean insumo) {
//        this.insumo = insumo;
//    }
//
//    public UnidadMedidaBean getUnidadmedida() {
//        return unidadmedida;
//    }
//
//    public void setUnidadmedida(UnidadMedidaBean unidadmedida) {
//        this.unidadmedida = unidadmedida;
//    }
//
//    public TallaBean getTalla() {
//        return talla;
//    }
//
//    public void setTalla(TallaBean talla) {
//        this.talla = talla;
//    }      
//    
//    
//    //-agrgado
//    public String getMateriaPrima_fkAgrgado() {
//        return this.getAgregado().getMateriaPrima_fk();
//    }
//    public void setMateriaPrima_fkAgrgado(String materiaPrima_fk) {
//        this.getAgregado().setMateriaPrima_fk(materiaPrima_fk);
//    }
//    public String getNombreMateriaPrimaAgrgado() {
//        return this.getAgregado().getNombreMateriaPrima();
//    }
//    public void setNombreMateriaPrimaAgrgado(String NombreMateriaPrima) {
//        this.getAgregado().setNombreMateriaPrima(NombreMateriaPrima);
//    }
//    public String getCodAgregado() {
//        return this.getAgregado().getCodAgregado();
//    }
//    public void setCodAgregado(String codAgregado) {
//        this.getAgregado().setCodAgregado(codAgregado);
//    }
//    //-Cuero
//    public String getMateriaPrima_fkCuero() {
//        return this.getCuero().getMateriaPrima_fk();
//    }
//
//    public void setMateriaPrima_fkCuero(String materiaPrima_fk) {
//        this.getCuero().setMateriaPrima_fk(materiaPrima_fk);
//    }
//
//    public String getCodCuero() {
//        return this.getCuero().getCodCuero();
//    }
//
//    public void setCodCuero(String codCuero) {
//        this.getCuero().setCodCuero(codCuero);
//    }
//
//    public String getColorCuero() {
//        return this.getCuero().getColor();
//    }
//
//    public void setColorCuero(String color) {
//        this.getCuero().setColor(color);
//    }
//
//    public String getNombreCuero() {
//        return this.getCuero().getNombreCuero();
//    }
//
//    public void setNombreCuero(String nombreCuero) {
//        this.getCuero().setNombreCuero(nombreCuero);
//    }
//
//    public String getTexturaCuero() {
//        return this.getCuero().getTextura();
//    }
//
//    public void setTexturaCuero(String textura) {
//        this.getCuero().setTextura(textura);
//    }   
//    //-Forro
//    public String getCodForro() {
//        return this.getForro().getCodForro();
//    }
//
//    public void setCodForro(String codForro) {
//        this.getForro().setCodForro(codForro);
//    }
//
//    public String getMateriaPrima_fkForro() {
//        return this.getForro().getMateriaPrima_fk();
//    }
//
//   public void setMateriaPrima_fkForro(String materiaPrima_fk) {
//        this.getForro().setMateriaPrima_fk(materiaPrima_fk);
//    }
//
//    public String getDigitadorForro() {
//        return this.getForro().getDigitador();
//    }
//
//    public void setDigitadorForro(String digitador) {
//        this.getForro().setDigitador(digitador);
//    }
//
//    public String getFechaDigitadorForro() {
//        return this.getForro().getFechaDigitador();
//    }
//
//    public void setFechaDigitadorForro(String fechaDigitador) {
//        this.getForro().setFechaDigitador(fechaDigitador);
//    }
//
//    public String getTipoForro() {
//        return this.getForro().getTipoForro();
//    }
//
//    public void setTipoForro(String tipoForro) {
//        this.getForro().setTipoForro(tipoForro);
//    } 
//    //-materiaprima
//    public boolean isActivo() {
//        return this.getMateriaprima().isActivo();
//    }
//
//    public void setActivo(boolean activo) {
//        this.getMateriaprima().setActivo(activo);
//    }
//
//    public String getCodMateriaPrima() {
//        return this.getMateriaprima().getCodMateriaPrima();
//    }
//
//    public void setCodMateriaPrima(String codMateriaPrima) {
//        this.getMateriaprima().setCodMateriaPrima(codMateriaPrima);
//    }
//
//    public String getDescripcion() {
//        return this.getMateriaprima().getDescripcion();
//    }
//
//    public void setDescripcion(String descripcion) {
//        this.getMateriaprima().setDescripcion(descripcion);
//    }
//
//    public String getDigitador() {
//        return this.getMateriaprima().getDigitador();
//    }
//
//    public void setDigitador(String digitador) {
//        this.getMateriaprima().setDigitador(digitador);
//    }
//
//    public String getFechaCreacion() {
//        return this.getMateriaprima().getFechaCreacion();
//    }
//
//    public void setFechaCreacion(String fechaCreacion) {
//        this.getMateriaprima().setFechaCreacion(fechaCreacion);
//    }
//
//    public char getTipo() {
//        return this.getMateriaprima().getTipo();
//    }
//
//    public void setTipo(char tipo) {
//        this.getMateriaprima().setTipo(tipo);
//    }
//    public String getInsumo_fk() {
//        return this.getMateriaprima().getInsumo_fk();
//    }
//
//    public void setInsumo_fk(String insumo_fk) {
//        this.getMateriaprima().setInsumo_fk(insumo_fk);
//    }
//
//    public String getUnidadMedida_fk() {
//        return this.getMateriaprima().getUnidadMedida_fk();
//    }
//
//    public void setUnidadMedida_fk(String unidadMedida_fk) {
//        this.getMateriaprima().setUnidadMedida_fk(unidadMedida_fk);
//    }
//   //-tacoSuela
//    public String getCodTacoSuela() {
//        return this.getTacosuela().getCodTacoSuela();
//    }
//
//    public void setCodTacoSuela(String codTacoSuela) {
//        this.getTacosuela().setCodTacoSuela(codTacoSuela);
//    }
//
//    public int getEsTacoSuela() {
//        return this.getTacosuela().getEsTacoSuela();
//    }
//
//    public void setEsTacoSuela(int esTacoSuela) {
//        this.getTacosuela().setEsTacoSuela(esTacoSuela);
//    }
//
//    public String getNombreTacoSuela() {
//        return this.getTacosuela().getNombreTacoSuela();
//    }
//
//    public void setNombreTacoSuela(String nombreTacoSuela) {
//        this.getTacosuela().setNombreTacoSuela(nombreTacoSuela);
//    }
//    public String getMateriaPrima_fkTacoSuela() {
//        return this.getTacosuela().getMateriaPrima_fk();
//    }
//
//   public void setMateriaPrima_fkTacoSuela(String materiaPrima_fk) {
//        this.getTacosuela().setMateriaPrima_fk(materiaPrima_fk);
//    }
//   
//    //-TallaTacoSuela
//    public String getCodTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getCodTallaTacoSuela();
//    }
//
//    public void setCodTallaTacoSuela(int i,String codTallaTacoSuela) {
//        this.getListatallatacosuela().get(i).setCodTallaTacoSuela(codTallaTacoSuela);
//    }
//
//    public String getDigitadorTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getDigitador();
//    }
//
//    public void setDigitadorTallaTacoSuela(int i,String digitador) {
//        this.getListatallatacosuela().get(i).setDigitador(digitador);
//    }
//
//    public String getFechaDigitadorTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getFechaDigitador();
//    }
//
//    public void setFechaDigitadorTallaTacoSuela(int i,String fechaDigitador) {
//        this.getListatallatacosuela().get(i).setFechaDigitador(fechaDigitador);
//    }
//
//    public String getTacoSuela_fkTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getTacoSuela_fk();
//    }
//
//    public void setTacoSuela_fkTallaTacoSuela(int i,String tacoSuela_fk) {
//        this.getListatallatacosuela().get(i).setTacoSuela_fk(tacoSuela_fk);
//    }
//
//    public String getTalla_fkTallaTacoSuela(int i) {
//        return this.getListatallatacosuela().get(i).getTalla_fk();
//    }
//
//    public void setTalla_fkTallaTacoSuela(int i,String talla_fk) {
//        this.getListatallatacosuela().get(i).setTalla_fk(talla_fk);
//    }
//    //-----------------fin metodos getters and setters-----------------------
//    //-----------------metodos de la clase --------------------------
//    @Override
//    protected void finalize() throws Throwable {
//        super.finalize();
//    }
//    public void mostrarMensaje(String tipoMensaje,String mensaje, String detalle)
//    {
//        if(tipoMensaje.equals("info"))
//        {
//            FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO, mensaje,detalle) );   
//        }else{
//            if(tipoMensaje.equals("error"))
//            {
//                FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR, mensaje,detalle) );   
//            }else{
//                if(tipoMensaje.equals("fatal"))
//                {
//                    FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_FATAL, mensaje,detalle) );   
//                }else{
//                    if(tipoMensaje.equals("alerta"))
//                    {
//                        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_WARN, mensaje,detalle) );   
//                    }
//                }
//            }
//        }
//    }
//    
//    public boolean verificarLogin()
//    {
//        if(login.verificarSesionUsuario().equals(usuarioBean.getUsuario().getIdSesion()))
//        {           
//            return true;
//        }
//        else
//        {
//            this.mostrarMensaje("error","No está ingresado al sistema","");
//            //this.borrarDatos();
//        }
//        return false;
//    }
//    private void setearConexion(GestorBaseDatos gbd)
//    {
//        gbd.setUsuario(usuarioBean.getUsuario().getCedulaUsuario());
//        gbd.setClave(usuarioBean.getUsuario().getClave());
//        gbd.setBasedatos("BDEgoZapateria");
//        gbd.setPuerto("5432");
//        gbd.setServidor("localhost");
//    }
//    public boolean crearMateriaPrima(String categoria)
//    {
//        if(this.verificarLogin())
//        {
//            
//            GestorBaseDatos gbd=new GestorBaseDatos();
//            this.setearConexion(gbd);
//            //obtener fecha y hora del servidor
//            List fechaList=gbd.select("SELECT TIMESTAMP WITHOUT TIME ZONE \'now\'");
//            String fechaHora=(fechaList.get(0).toString());
//            this.setFechaCreacion(fechaHora);
//            
//            List <String> datosLista= new ArrayList<String>();
//            String respuestaInsert; //es la respuesta del insert si se almaceno o no los datos
//
//            //Generacion del primary key
//            this.setCodMateriaPrima(gbd.generaCodigo("materiaprima", "MP"));
//            datosLista.add(0,"\'"+this.getCodMateriaPrima()+"\'");
//
//            datosLista.add(1,"\'"+this.getDescripcion()+"\'");                
//            datosLista.add(2,"\'"+this.getFechaCreacion()+"\'"); 
//            datosLista.add(3,""+this.isActivo()+""); 
//            datosLista.add(4,"\'"+this.getTipo()+"\'"); 
//            datosLista.add(5,"\'"+this.getInsumo_fk()+"\'");
//            datosLista.add(6,""+this.getUnidadMedida_fk()+"");
//            
//            datosLista.add(7,this.usuarioBean.getUsuario().getCodUsuario());
//
//            datosLista.add(8,"\'"+fechaHora+"\'");
//
//            //Almacenar datos en la tabla MateriaPrima
//            respuestaInsert=""+gbd.insert("MateriaPrima",datosLista,true);
//
//            if(respuestaInsert.equals("Registro almacenado correctamente"))
//            {
//                if(categoria.equals("Agregado"))
//                {
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    //Generacion del primary key
//                    this.setCodAgregado(gbd.generaCodigo("agregado", "AG"));
//                    datosLista1.add(0,"\'"+this.getCodAgregado()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreMateriaPrimaAgrgado()+"\'");   
//                    
//                    this.setMateriaPrima_fkAgrgado(this.getCodMateriaPrima());
//                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkAgrgado()+"\'"); 
//
//                    //Almacenar datos en la tabla Agregado
//                    respuestaInsert1=""+gbd.insert("Agregado",datosLista1,true);
//
//                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
//                    {
//                            //gbd.commit();
//                            //gbd.desconectar();
//                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
//                            //this.borrarDatos();                           
//                            return true;
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al almacenar los datos","");
//                    }                                
//                }
//                else if(categoria.equals("Cuero")) {
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    //Generacion del primary key
//                    this.setCodCuero(gbd.generaCodigo("cuero", "CU"));
//                    datosLista1.add(0,"\'"+this.getCodCuero()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreCuero()+"\'"); 
//                    datosLista1.add(2,"\'"+this.getColorCuero()+"\'");
//                    datosLista1.add(3,"\'"+this.getTexturaCuero()+"\'");
//                    
//                    this.setMateriaPrima_fkCuero(this.getCodMateriaPrima());
//                    datosLista1.add(4,"\'"+this.getMateriaPrima_fkCuero()+"\'"); 
//                    
//                    //Almacenar datos en la tabla Cuero
//                    respuestaInsert1=""+gbd.insert("Cuero",datosLista1,true);
//
//                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
//                    {
//                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
//                            //gbd.commit();
//                            //gbd.desconectar();
//                            //this.borrarDatos();                           
//                            return true;
//                    }
//                    else
//                    {
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        mostrarMensaje("fatal","Error al almacenar los datos","");
//                    }                                
//                }
//                else if(categoria.equals("Forro")){
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    //Generacion del primary key
//                    this.setCodForro(gbd.generaCodigo("forro", "FR"));
//                    datosLista1.add(0,"\'"+this.getCodForro()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getTipoForro()+"\'"); 
//                                        
//                    this.setMateriaPrima_fkForro(this.getCodMateriaPrima());
//                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkForro()+"\'"); 
//                    
//                    //Almacenar datos en la tabla forro
//                    respuestaInsert1=""+gbd.insert("Forro",datosLista1,true);
//
//                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
//                    {
//                        //gbd.commit();
//                        //gbd.desconectar();
//                        this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
//                        //this.borrarDatos();                           
//                        return true;
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al almacenar los datos","");
//                    }
//                }
//                else if(categoria.equals("Suela")){
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    //Generacion del primary key
//                    this.setCodTacoSuela(gbd.generaCodigo("tacosuela", "TS"));
//                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
//                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
//                                        
//                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
//                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
//                    
//                    //Almacenar datos en la tabla Taco Suela
//                    respuestaInsert1=""+gbd.insert("TacoSuela",datosLista1,true);
//
//                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
//                    {
//                        int contadorFallo=0;
//                        boolean seAlmaceno=false;
//                        for(int i=0;i<this.getListatallatacosuela().size();i++)
//                        {                            
//                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
//                            
//                            //Generacion del primary key
//                            this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
//                             
//                            this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
//                            this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
//                            System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
//                            this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
//                                                                          this.getListatallatacosuela().get(i).getTalla_fk(), 
//                                                                          this.getListatallatacosuela().get(i).getTacoSuela_fk(),
//                                                                          this.getUsuarioBean().getUsuario().getCodUsuario(),
//                                                                          fechaHora);
//                            //Almacenar datos en la tabla tallaTacoSuela
//                            if(this.getTallatacosuela().crearTallaTacoSuela())
//                            {
//                                seAlmaceno=true;
//                            }
//                            else
//                            {
//                                contadorFallo=i;
//                                seAlmaceno=false;
//                                i=this.getListatallatacosuela().size();
//                            }                            
//                        }
//                        if(seAlmaceno)                      
//                        {
//                            //gbd.commit();
//                            //gbd.desconectar();
//                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
//                            //this.borrarDatos();                           
//                            return true;
//                        }
//                        else
//                        {
//                            //agregar el codigo para borrar los datos de la tabla materia prima
//                            //gbd.rollback();
//                            //gbd.desconectar();
//                            mostrarMensaje("fatal","Error al almacenar los datos","");
//                        }
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al almacenar los datos","");
//                    }
//                    
//                }
//                else if(categoria.equals("Taco"))
//                {                    
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    //Generacion del primary key
//                    this.setCodTacoSuela(gbd.generaCodigo("tacosuela", "TS"));
//                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
//                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
//                                        
//                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
//                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
//                    
//                    //Almacenar datos en la tabla Taco Suela
//                    respuestaInsert1=""+gbd.insert("TacoSuela",datosLista1,true);
//
//                    if(respuestaInsert1.equals("Registro almacenado correctamente"))
//                    {
//                        int contadorFallo=0;
//                        boolean seAlmaceno=false;
//                        for(int i=0;i<this.getListatallatacosuela().size();i++)
//                        {                            
//                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
//                            
//                            //Generacion del primary key
//                            this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
//                            this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
//                            System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
//                            this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
//                            this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
//                                                                          this.getListatallatacosuela().get(i).getTalla_fk(), 
//                                                                          this.getListatallatacosuela().get(i).getTacoSuela_fk(),
//                                                                          this.getUsuarioBean().getUsuario().getCodUsuario(),
//                                                                          fechaHora);
//                            //Almacenar datos en la tabla tallaTacoSuela
//                            if(this.getTallatacosuela().crearTallaTacoSuela())
//                            {
//                                seAlmaceno=true;
//                            }
//                            else
//                            {
//                                contadorFallo=i;
//                                seAlmaceno=false;
//                                i=this.getListatallatacosuela().size();
//                            }                            
//                        }
//                        if(seAlmaceno)                      
//                        {
//                            //gbd.commit();
//                            //gbd.desconectar();
//                            this.mostrarMensaje("info","Creada Nueva Materia Prima!","");
//                            //this.borrarDatos();                           
//                            return true;
//                        }
//                        else
//                        {
//                            //agregar el codigo para borrar los datos de la tabla materia prima
//                            //gbd.rollback();
//                            //gbd.desconectar();
//                            mostrarMensaje("fatal","Error al almacenar los datos","");
//                        }
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima en caso de que no se hayan almacenado los datosde las tablas subsiguientes
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al almacenar los datos","");
//                    }
//                    
//                }
//                
//                //this.borrarDatos();
//                //return true;
//            }
//            else
//            {
//                //gbd.rollback();
//                //gbd.desconectar();
//                this.mostrarMensaje("fatal","Error al almacenar los datos","");
//            }                
//        }
//        else
//        {
//            this.mostrarMensaje("error","Error: La Materia Prima que desea ingresar ya existe","");
//            //this.borrarDatos();     
//            return true;
//        }                                
//        return false;
//    }
//    
//    public List<List> consultarMateriaPrima(String consultar, String criterioConsulta,String coincidencia,String categoria)
//    {
//        List<List>listaRetorno=new ArrayList<List>();        
//        List<tablaAgregado>listaAgregado=new ArrayList<tablaAgregado>();
//        List<tablaCuero>listaCuero=new ArrayList<tablaCuero>();
//        List<tablaForro>listaForro=new ArrayList<tablaForro>();
//        List<tablaSuela>listaSuela=new ArrayList<tablaSuela>();
//        List<tablaTaco>listaTaco=new ArrayList<tablaTaco>();
//        
//        GestorBaseDatos gbd=new GestorBaseDatos();
//        this.setearConexion(gbd);
//        String query=" select ";
//        String from=" from materiaprima as mp, insumo as i, unidadmedida as um ";
//        String where=" where i.codinsumo=mp.insumo_fk and um.codunidadmedida=mp.unidadmedida_fk  ";
//        String ilike="";
//        if(criterioConsulta.equals("CodMateriaPrima"))
//        {
//            ilike+=" and mp.CodMateriaPrima ilike ";
//            if(coincidencia.equals("todas"))
//                ilike+=" \'%"+consultar+"%\' ";
//            else if(coincidencia.equals("exacta"))
//                ilike+=" \'"+consultar+"\' ";
//            else if(coincidencia.equals("inicial"))
//                ilike+=" \'"+consultar+"%\' ";
//            else if(coincidencia.equals("final"))
//                ilike+=" \'%"+consultar+"\' ";
//        }
//        else if(criterioConsulta.equals("UnidadMedida"))
//        {
//            ilike+=" and um.abreviatura ilike ";
//            if(coincidencia.equals("todas"))
//                ilike+=" \'%"+consultar+"%\' ";
//            else if(coincidencia.equals("exacta"))
//                ilike+=" \'"+consultar+"\' ";
//            else if(coincidencia.equals("inicial"))
//                ilike+=" \'"+consultar+"%\' ";
//            else if(coincidencia.equals("final"))
//                ilike+=" \'%"+consultar+"\' ";
//        }
//        else if(criterioConsulta.equals("Insumo"))
//        {    
//            ilike+=" and i.nombreInsumo ilike ";   
//            if(coincidencia.equals("todas"))
//                ilike+=" \'%"+consultar+"%\' ";
//            else if(coincidencia.equals("exacta"))
//                ilike+=" \'"+consultar+"\' ";
//            else if(coincidencia.equals("inicial"))
//                ilike+=" \'"+consultar+"%\' ";
//            else if(coincidencia.equals("final"))
//                ilike+=" \'%"+consultar+"\' ";
//        }
//        else if(criterioConsulta.equals("Activo"))
//        {
//            ilike+=" and mp.activo= ";
//            if(consultar.equalsIgnoreCase("activo"))
//                ilike+=" true ";
//            else
//                ilike+=" false ";
//        }                       
//        
//        if(categoria.equals("Agregado")||categoria.equals("Total"))
//        {
//        //..Agregado
//            
//            if(criterioConsulta.equals("Nombre"))
//            {   
//                ilike=" and a.nombreMateriaPrima ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//            }
//            
//            String queryagregado=query+" mp.codmateriaprima, i.nombreinsumo, a.nombremateriaprima, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, a.codagregado, um.codunidadmedida ";
//            String fromagregado=from+" , agregado as a ";
//            String whereagregado=where+" and a.materiaprima_fk=mp.codmateriaprima ";  
//            List<List>lista=gbd.selectVarios(queryagregado+fromagregado+whereagregado+ilike);
//            for(int j=0;j<lista.size();j++)
//            {
//                String esActivo="Inactivo";
//                if(((lista.get(j)).get(5)).toString().equals("t"))
//                    esActivo="Activo";
//                listaAgregado.add(new tablaAgregado(((lista.get(j)).get(0)).toString(), ((lista.get(j)).get(1)).toString(), ((lista.get(j)).get(2)).toString(), ((lista.get(j)).get(3)).toString(), ((lista.get(j)).get(4)).toString(), esActivo, ((lista.get(j)).get(6)).toString(), ((lista.get(j)).get(7)).toString(), Integer.parseInt(((lista.get(j)).get(8)).toString())));
//            }
//        } 
//        if(categoria.equals("Cuero")||categoria.equals("Total"))
//        {
//        //..Cuero
//            
//            if(criterioConsulta.equals("Nombre"))
//            {   
//                ilike=" and c.nombreCuero ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//            }
//            
//            String querycuero=query+" mp.codmateriaprima,i.nombreinsumo,c.nombrecuero,c.color,c.textura,um.abreviatura,mp.fechacreacion,mp.activo, i.codinsumo, c.codCuero, um.codunidadmedida ";
//            String fromcuero=from+" , cuero as c ";
//            String wherecuero=where+" and c.materiaprima_fk=mp.codmateriaprima ";  
//            List<List>lista1=gbd.selectVarios(querycuero+fromcuero+wherecuero+ilike);
//            for(int j=0;j<lista1.size();j++)
//            {
//                String esActivo="Inactivo";
//                if(((lista1.get(j)).get(7)).toString().equals("t"))
//                    esActivo="Activo";
//                listaCuero.add(new tablaCuero(((lista1.get(j)).get(0)).toString(), ((lista1.get(j)).get(1)).toString(), ((lista1.get(j)).get(2)).toString(),((lista1.get(j)).get(3)).toString(), ((lista1.get(j)).get(4)).toString(), ((lista1.get(j)).get(5)).toString(),((lista1.get(j)).get(6)).toString(), esActivo, ((lista1.get(j)).get(8)).toString(), ((lista1.get(j)).get(9)).toString(), Integer.parseInt(((lista1.get(j)).get(10)).toString())));
//            }
//        } 
//        if(categoria.equals("Forro")||categoria.equals("Total"))
//        {
//        //..Forro
//            
//            if(criterioConsulta.equals("Nombre"))
//            {   
//                ilike=" and f.tipoForro ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//            }
//            
//            String queryforro=query+" mp.codmateriaprima, i.nombreinsumo, f.tipoforro, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, f.codforro, um.codunidadmedida ";
//            String fromforro=from+" , forro as f ";
//            String whereforro=where+" and f.materiaprima_fk=mp.codmateriaprima ";
//            List<List>lista2=gbd.selectVarios(queryforro+fromforro+whereforro+ilike);
//            for(int j=0;j<lista2.size();j++)
//            {
//                String esActivo="Inactivo";
//                if(((lista2.get(j)).get(5)).toString().equals("t"))
//                    esActivo="Activo";
//                listaForro.add(new tablaForro(((lista2.get(j)).get(0)).toString(), ((lista2.get(j)).get(1)).toString(), ((lista2.get(j)).get(2)).toString(), ((lista2.get(j)).get(3)).toString(), ((lista2.get(j)).get(4)).toString(), esActivo, ((lista2.get(j)).get(6)).toString(), ((lista2.get(j)).get(7)).toString(), Integer.parseInt(((lista2.get(j)).get(8)).toString())));
//            }
//        } 
//        if(categoria.equals("Suela")||categoria.equals("Total"))
//        {
//        //..Suela
//            String intersect="";
//            if(criterioConsulta.equals("Nombre"))
//            {   
//                ilike=" and ts.nombreTacoSuela ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//            }            
//            else if(criterioConsulta.equals("Talla"))
//            {
//                ilike+=" and tts.talla_fk ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//                intersect+=" intersect "+query+"  mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela, um.codunidadmedida "+from+" ,tacosuela as ts, tallatacosuela as tts "+where+" and ts.codtacosuela=tts.tacosuela_fk and mp.codmateriaprima=ts.materiaprima_fk ";
//            }
//            //String querysuela=query+" mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,tts.talla_fk, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela,tts.codtallatacosuela, um.codunidadmedida ";
//            //String fromsuela=from+" , tacosuela as ts, tallatacosuela as tts, talla as t ";
//            //String wheresuela=where+" and mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S' and ts.codtacosuela=tts.tacosuela_fk and t.codtalla=tts.talla_fk ";
//            
//            String querysuela=query+" mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela, um.codunidadmedida ";
//            String fromsuela=from+" , tacosuela as ts ";
//            String wheresuela=where+" and mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S'  ";
//            List<List>lista3=gbd.selectVarios(querysuela+fromsuela+wheresuela+intersect+ilike);
//            for(int j=0;j<lista3.size();j++)
//            {
//                String esActivo="Inactivo";
//                if(((lista3.get(j)).get(5)).toString().equals("t"))
//                    esActivo="Activo";
//                listaSuela.add(new tablaSuela(((lista3.get(j)).get(0)).toString(), ((lista3.get(j)).get(1)).toString(), ((lista3.get(j)).get(2)).toString(), ((lista3.get(j)).get(3)).toString(), ((lista3.get(j)).get(4)).toString(), esActivo, ((lista3.get(j)).get(6)).toString(),((lista3.get(j)).get(7)).toString(),Integer.parseInt(((lista3.get(j)).get(8)).toString())));
//            }
//            //select mp.codmateriaprima, ts.nombretacosuela from materiaprima as mp, tacosuela as ts where mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S'  intersect select mp.codmateriaprima,ts.nombretacosuela from tacosuela as ts, tallatacosuela as tts, materiaprima as mp where ts.codtacosuela=tts.tacosuela_fk and mp.codmateriaprima=ts.materiaprima_fk and tts.talla_fk ilike '%37%'
//            //select  mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,tts.talla_fk, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela,tts.codtallatacosuela, um.codunidadmedida  from materiaprima as mp, insumo as i, unidadmedida as um  , tacosuela as ts, tallatacosuela as tts, talla as t  where i.codinsumo=mp.insumo_fk and um.codunidadmedida=mp.unidadmedida_fk   and mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='S' and ts.codtacosuela=tts.tacosuela_fk and t.codtalla=tts.talla_fk  and tts.talla_fk ilike  '%36%' 
//         } 
//        if(categoria.equals("Taco")||categoria.equals("Total"))
//        {
//        //..Taco
//            String intersect="";
//            if(criterioConsulta.equals("Nombre"))
//            {   
//                ilike=" and ts.nombreTacoSuela ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//            }
//            else if(criterioConsulta.equals("Tamanio"))
//            {   
//                ilike+=" and tts.talla_fk ilike ";
//                if(coincidencia.equals("todas"))
//                    ilike+=" \'%"+consultar+"%\' ";
//                else if(coincidencia.equals("exacta"))
//                    ilike+=" \'"+consultar+"\' ";
//                else if(coincidencia.equals("inicial"))
//                    ilike+=" \'"+consultar+"%\' ";
//                else if(coincidencia.equals("final"))
//                    ilike+=" \'%"+consultar+"\' ";
//                
//                intersect+=" intersect "+query+"  mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela, um.codunidadmedida "+from+" ,tacosuela as ts, tallatacosuela as tts "+where+" and ts.codtacosuela=tts.tacosuela_fk and mp.codmateriaprima=ts.materiaprima_fk ";
//            }
//            
//            String querytaco=query+" mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela, um.codunidadmedida ";
//            String fromtaco=from+" , tacosuela as ts ";
//            String wheretaco=where+" and mp.codmateriaprima=ts.materiaprima_fk and mp.tipo='T'  ";
//            List<List>lista4=gbd.selectVarios(querytaco+fromtaco+wheretaco+intersect+ilike);
//            for(int j=0;j<lista4.size();j++)
//            {
//                String esActivo="Inactivo";
//                if(((lista4.get(j)).get(5)).toString().equals("t"))
//                    esActivo="Activo";
//                listaTaco.add(new tablaTaco(((lista4.get(j)).get(0)).toString(), ((lista4.get(j)).get(1)).toString(), ((lista4.get(j)).get(2)).toString(), ((lista4.get(j)).get(3)).toString(), ((lista4.get(j)).get(4)).toString(), esActivo,((lista4.get(j)).get(6)).toString(), ((lista4.get(j)).get(7)).toString(), Integer.parseInt(((lista4.get(j)).get(8)).toString())));
//            }
//        }    
//        listaRetorno.add(listaAgregado);
//        listaRetorno.add(listaCuero);
//        listaRetorno.add(listaForro);
//        listaRetorno.add(listaSuela);
//        listaRetorno.add(listaTaco);
//        /*select mp.codmateriaprima, i.nombreinsumo, ts.nombretacosuela,tts.talla_fk, um.abreviatura, mp.fechacreacion, mp.activo, i.codinsumo, ts.codtacosuela,tts.codtallatacosuela, um.codunidadmedida from materiaprima as mp, insumo as i, unidadmedida as um, tacosuela as ts, tallatacosuela as tts, talla as t
//where i.codinsumo=mp.insumo_fk and um.codunidadmedida=mp.unidadmedida_fk and ts.materiaprima_fk=mp.codmateriaprima and mp.tipo='T' and ts.codtacosuela=tts.tacosuela_fk and t.codtalla=tts.talla_fk
//   */
//        return listaRetorno;
//    }
//    
//    public List<String> consultarDatoMateriaPrima(String categoria,String codMateriaPrima)
//    {
//        List<String>listaRetorno=new ArrayList<String>();
//        GestorBaseDatos gbd=new GestorBaseDatos();
//        this.setearConexion(gbd);
//        String query=" select ";
//        String from=" from materiaprima as mp, insumo as i, unidadmedida as um ";
//        String where=" where i.codinsumo=mp.insumo_fk and um.codunidadmedida=mp.unidadmedida_fk  ";
//        if(categoria.equals("Agregado")||categoria.equals("AgregadoActualizar"))
//        {
//        //..Agregado      
//            String unidadmedida=" um.nombreUniMedida", insumo="i.nombreinsumo";
//            if(categoria.equals("AgregadoActualizar"))
//            {
//                unidadmedida="um.codUnidadMedida";
//                insumo="i.codInsumo";
//            }
//            String queryagregado=query+" mp.codmateriaprima, "+insumo+", a.nombremateriaprima, "+unidadmedida+", um.abreviatura, mp.descripcion, mp.fechacreacion, mp.activo ";
//            String fromagregado=from+" , agregado as a ";
//            String whereagregado=where+" and a.materiaprima_fk=mp.codmateriaprima and mp.codMateriaPrima= \'"+codMateriaPrima+"\'";  
//            
//            listaRetorno.add("              Codigo:");
//            listaRetorno.add("              Insumo:");
//            listaRetorno.add("Nombre Agregado/Otro:");
//            listaRetorno.add("       Unidad Medida:");
//            listaRetorno.add("         Descripción:");
//            listaRetorno.add("   Fecha de Creación:");
//            listaRetorno.add("              Estado:");            
//            
//            List<List>lista=gbd.selectVarios(queryagregado+fromagregado+whereagregado);
//            for(int j=0,k=0;j<listaRetorno.size();j++,k++)
//            {
//                //System.out.println("=====888888 consultarDatoMateriaPrima (lista.get(0)).get("+j+")).toString() = "+((lista.get(0)).get(j)).toString());
//                if(j==3)
//                {
//                    String str="";
//                    if(categoria.equals("AgregadoActualizar"))
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    else
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString()+" ("+((lista.get(0)).get(k+1)).toString()+")";
//                    listaRetorno.set(j,str);
//                    k++;
//                }
//                else if(j==6)
//                {
//                    String esActivo="Inactivo";
//                    if(((lista.get(0)).get(k)).toString().equals("t"))
//                        esActivo="Activo";
//                    esActivo=listaRetorno.get(j)+esActivo;
//                    listaRetorno.set(j,esActivo);
//                }
//                else
//                {
//                    String str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    listaRetorno.set(j,str);
//                }   
//                System.out.println("=====888888 consultarDatoMateriaPrima listaRetorno.get("+j+")"+listaRetorno.get(j));
//            }
//        } 
//        if(categoria.equals("Cuero")||categoria.equals("CueroActualizar"))
//        {
//        //..Cuero
//            String unidadmedida=" um.nombreUniMedida", insumo="i.nombreinsumo";
//            if(categoria.equals("CueroActualizar"))
//            {
//                unidadmedida="um.codUnidadMedida";
//                insumo="i.codInsumo";
//            }
//            
//            String querycuero=query+" mp.codmateriaprima,"+insumo+",c.nombrecuero,c.color,c.textura,"+unidadmedida+",um.abreviatura,mp.descripcion,mp.fechacreacion,mp.activo ";
//            String fromcuero=from+" , cuero as c ";
//            String wherecuero=where+" and c.materiaprima_fk=mp.codmateriaprima and mp.codMateriaPrima= \'"+codMateriaPrima+"\'";  
//            List<List>lista=gbd.selectVarios(querycuero+fromcuero+wherecuero);
//            
//            listaRetorno.add("              Codigo:");
//            listaRetorno.add("              Insumo:");
//            listaRetorno.add("        Nombre Cuero:");
//            listaRetorno.add("               Color:");
//            listaRetorno.add("             Textura:");
//            listaRetorno.add("       Unidad Medida:");
//            listaRetorno.add("         Descripción:");
//            listaRetorno.add("   Fecha de Creación:");
//            listaRetorno.add("              Estado:"); 
//            
//            for(int j=0,k=0;j<listaRetorno.size();j++,k++)
//            {
//                if(j==5)
//                {
//                    String str="";
//                    if(categoria.equals("CueroActualizar"))
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    else
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString()+" ("+((lista.get(0)).get(k+1)).toString()+")";                                        
//                    listaRetorno.set(j,str);
//                    k++;
//                }
//                else if(j==8)
//                {
//                    String esActivo="Inactivo";
//                    if(((lista.get(0)).get(k)).toString().equals("t"))
//                        esActivo="Activo";
//                    esActivo=listaRetorno.get(j)+esActivo;
//                    listaRetorno.set(j,esActivo);
//                }
//                else
//                {
//                    String str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    listaRetorno.set(j,str);
//                }                                                
//            }
//        } 
//        if(categoria.equals("Forro")||categoria.equals("ForroActualizar"))
//        {
//        //..Forro
//            String unidadmedida=" um.nombreUniMedida", insumo="i.nombreinsumo";
//            if(categoria.equals("ForroActualizar"))
//            {
//                unidadmedida="um.codUnidadMedida";
//                insumo="i.codInsumo";
//            }
//            
//            String queryforro=query+" mp.codmateriaprima, "+insumo+", f.tipoforro, "+unidadmedida+",um.abreviatura,mp.descripcion, mp.fechacreacion, mp.activo ";
//            String fromforro=from+" , forro as f ";
//            String whereforro=where+" and f.materiaprima_fk=mp.codmateriaprima and mp.codMateriaPrima= \'"+codMateriaPrima+"\'";
//            List<List>lista=gbd.selectVarios(queryforro+fromforro+whereforro);
//            
//            listaRetorno.add("              Codigo:");
//            listaRetorno.add("              Insumo:");
//            listaRetorno.add("       Tipo de Forro:");
//            listaRetorno.add("       Unidad Medida:");
//            listaRetorno.add("         Descripción:");
//            listaRetorno.add("   Fecha de Creación:");
//            listaRetorno.add("              Estado:");                                    
//            
//            for(int j=0,k=0;j<listaRetorno.size();j++,k++)
//            {
//                if(j==3)
//                {
//                    String str="";
//                    if(categoria.equals("ForroActualizar"))
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    else
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString()+" ("+((lista.get(0)).get(k+1)).toString()+")";                                                            
//                    listaRetorno.set(j,str);
//                    k++;
//                }
//                else if(j==6)
//                {
//                    String esActivo="Inactivo";
//                    if(((lista.get(0)).get(k)).toString().equals("t"))
//                        esActivo="Activo";
//                    esActivo=listaRetorno.get(j)+esActivo;
//                    listaRetorno.set(j,esActivo);
//                }
//                else
//                {
//                    String str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    listaRetorno.set(j,str);
//                }                                                
//            }
//        } 
//        if(categoria.equals("Suela")||categoria.equals("Taco")||categoria.equals("SuelaActualizar")||categoria.equals("TacoActualizar"))
//        {
//        //..Suela y taco            
//            
//            String unidadmedida=" um.nombreUniMedida", insumo="i.nombreinsumo";
//            if(categoria.equals("SuelaActualizar")||categoria.equals("TacoActualizar"))
//            {
//                unidadmedida="um.codUnidadMedida";
//                insumo="i.codInsumo";
//            }
//            
//            String querysuela=query+" mp.codmateriaprima, "+insumo+", ts.nombretacosuela,tts.talla_fk, "+unidadmedida+",um.abreviatura, mp.descripcion ,mp.fechacreacion, mp.activo";
//            String fromsuela=from+" , tacosuela as ts, tallatacosuela as tts, talla as t ";
//            String wheresuela=where+" and mp.codmateriaprima=ts.materiaprima_fk and ts.codtacosuela=tts.tacosuela_fk and t.codtalla=tts.talla_fk and mp.codMateriaPrima= \'"+codMateriaPrima+"\' ";
//            List<List>lista=gbd.selectVarios(querysuela+fromsuela+wheresuela+" ORDER by tts.talla_fk ");
//            
//            listaRetorno.add("              Codigo:");
//            listaRetorno.add("              Insumo:");
//            if(categoria.equals("Taco")){
//            listaRetorno.add("         Nombre Taco:");
//            listaRetorno.add("   Tamaños Asociados:");
//            }else{                         
//            listaRetorno.add("        Nombre Suela:");
//            listaRetorno.add("    Tallas Asociadas:");
//            } 
//            
//            boolean ingresoFor=false;
//                        
//            for(int j=0,k=0;j<listaRetorno.size();j++,k++)
//            {
//                if(j==3)
//                {
//                    String act=listaRetorno.get(j);
//                    boolean entroIf=false;
//                    if(categoria.equals("SuelaActualizar")||categoria.equals("TacoActualizar"))
//                    {                        
//                        act="/"+act.substring(1);
//                        entroIf=true;
//                    }
//                    listaRetorno.set(j,act+((lista.get(0)).get(k)).toString());
//                    for(int i=1;i<lista.size();i++)
//                    {
//                        String str="                     ";
//                        if(entroIf)
//                            str="/                    ";
//                        str+=((lista.get(i)).get(k)).toString();
//                        listaRetorno.add(str);   
//                        j++;
//                    }
//                    
//                    listaRetorno.add("       Unidad Medida:");
//                    listaRetorno.add("         Descripción:");
//                    listaRetorno.add("   Fecha de Creación:");
//                    listaRetorno.add("              Estado:"); 
//                    ingresoFor=true;
//                }
//                else if(j==(listaRetorno.size()-4)&&ingresoFor)
//                {
//                    String str="";
//                    if(categoria.equals("SuelaActualizar")||categoria.equals("TacoActualizar"))
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    else
//                        str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString()+" ("+((lista.get(0)).get(k+1)).toString()+")";
//                     
//                    listaRetorno.set(j,str);
//                    k++;
//                }
//                else if(j==(listaRetorno.size()-1)&&ingresoFor)
//                {
//                    String esActivo="Inactivo";
//                    if(((lista.get(0)).get(k)).toString().equals("t"))
//                        esActivo="Activo";
//                    esActivo=listaRetorno.get(j)+esActivo;
//                    listaRetorno.set(j,esActivo);
//                }
//                else
//                {
//                    String str=listaRetorno.get(j)+((lista.get(0)).get(k)).toString();
//                    listaRetorno.set(j,str);
//                }                                                
//            }
//         } 
//                   
//        return listaRetorno;
//    }
//    public boolean modificarMateriaPrima(String categoria)
//    {
//        if(this.verificarLogin())
//        {
//            
//            GestorBaseDatos gbd=new GestorBaseDatos();
//            this.setearConexion(gbd);
//            //obtener fecha y hora del servidor
//            List fechaList=gbd.select("SELECT TIMESTAMP WITHOUT TIME ZONE \'now\'");
//            String fechaHora=(fechaList.get(0).toString());
//            this.setFechaCreacion(fechaHora);
//            
//            List <String> datosLista= new ArrayList<String>();
//            String respuestaInsert; //es la respuesta del insert si se almaceno o no los datos
//            
//            datosLista.add(0,"\'"+this.getCodMateriaPrima()+"\'");
//
//            datosLista.add(1,"\'"+this.getDescripcion()+"\'");                
//            datosLista.add(2,"\'"+this.getFechaCreacion()+"\'"); 
//            datosLista.add(3,""+this.isActivo()+""); 
//            datosLista.add(4,"\'"+this.getTipo()+"\'"); 
//            datosLista.add(5,"\'"+this.getInsumo_fk()+"\'");
//            datosLista.add(6,""+this.getUnidadMedida_fk()+"");
//            
//            datosLista.add(7,this.usuarioBean.getUsuario().getCodUsuario());
//
//            datosLista.add(8,"\'"+fechaHora+"\'");
//            
//            String condicion="codMateriaPrima=\'"+this.getCodMateriaPrima()+"\'";
//            //Almacenar datos en la tabla MateriaPrima
//            respuestaInsert=""+gbd.update("MateriaPrima",datosLista,condicion,true);
//            System.out.println("///////// respuestaInsert1 ="+respuestaInsert+" condicion="+condicion);
//            if(respuestaInsert.equals("Registro actualizado correctamente"))
//            {
//                if(categoria.equals("Agregado"))
//                {
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//                    
//                    datosLista1.add(0,"\'"+this.getCodAgregado()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreMateriaPrimaAgrgado()+"\'");   
//                    
//                    this.setMateriaPrima_fkAgrgado(this.getCodMateriaPrima());
//                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkAgrgado()+"\'"); 
//                    
//                    condicion="codAgregado=\'"+this.getCodAgregado()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\'";
//                    //Almacenar datos en la tabla Agregado
//                    respuestaInsert1=""+gbd.update("Agregado",datosLista1,condicion,false);
//                    System.out.println("///////// respuestaInsert1 ="+respuestaInsert1+" condicion="+condicion);
//                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
//                    {
//                        //gbd.commit();
//                        //gbd.desconectar();
//                        this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
//                        //this.borrarDatos();                           
//                        return true;
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al actualizar los datos","");
//                    }                                
//                }
//                else if(categoria.equals("Cuero")) {
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    datosLista1.add(0,"\'"+this.getCodCuero()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreCuero()+"\'"); 
//                    datosLista1.add(2,"\'"+this.getColorCuero()+"\'");
//                    datosLista1.add(3,"\'"+this.getTexturaCuero()+"\'");
//                    
//                    this.setMateriaPrima_fkCuero(this.getCodMateriaPrima());
//                    datosLista1.add(4,"\'"+this.getMateriaPrima_fkCuero()+"\'"); 
//                    
//                    condicion="codCuero=\'"+this.getCodCuero()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\'";
//                    
//                    //Almacenar datos en la tabla Cuero
//                    respuestaInsert1=""+gbd.update("Cuero",datosLista1,condicion,true);
//
//                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
//                    {
//                        //gbd.commit();
//                        //gbd.desconectar();
//                        this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
//                        //this.borrarDatos();                           
//                        return true;
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al actualizar los datos","");
//                    }                                
//                }
//                else if(categoria.equals("Forro")){
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//
//                    datosLista1.add(0,"\'"+this.getCodForro()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getTipoForro()+"\'"); 
//                                        
//                    this.setMateriaPrima_fkForro(this.getCodMateriaPrima());
//                    datosLista1.add(2,"\'"+this.getMateriaPrima_fkForro()+"\'"); 
//                    
//                    condicion="codForro=\'"+this.getCodForro()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\'";
//                    //Almacenar datos en la tabla forro
//                    respuestaInsert1=""+gbd.update("Forro",datosLista1,condicion,true);
//
//                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
//                    {
//                        //gbd.commit();
//                        //gbd.desconectar();
//                        this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
//                        //this.borrarDatos();                           
//                        return true;
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al actualizar los datos","");
//                    }
//                }
//                else if(categoria.equals("Suela")){
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//                                       
//                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
//                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
//                                        
//                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
//                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
//                    
//                    condicion=" codTacoSuela=\'"+this.getCodTacoSuela()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\' ";
//                    //Almacenar datos en la tabla Taco Suela
//                    respuestaInsert1=""+gbd.update("TacoSuela",datosLista1,condicion,true);
//
//                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
//                    {
//                        int contadorFallo=0;
//                        boolean seAlmaceno=false;
//                        boolean seElimino=false;
//                        boolean hayCambioTallas=false;
//                        //Actualizacion del detalle
//                           
//                        //1.-a realizarse la consulta si esta en el detalle
//                            //2a.-si esta en el detalle y en la lista finaliza la accion
//                            //2b.-si esta en el detalle y no en la lista, se elimina de la base de datos
//                            //3c.-si esta no esta en el detalle y està en la lista se crea un nuevo detalle en la bd
//                            
//                            //consulta a la tabla tallatacosuela para obtener los detalles de tacosuela y talla
////                        List<List> listaTablaTallaTacoSuela=this.getTallatacosuela().consultarTallaTacoSuela(" where tacosuela_fk= \'"+this.getCodTacoSuela() +"\' ","");
//                        this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
//                        List<TallaTacoSuela>  listaTablaTallaTacoSuela=(List<TallaTacoSuela>)((this.getTallatacosuela().consultarTallaTacoSuela(" where tacosuela_fk= \'"+this.getCodTacoSuela() +"\' ","").get(0)));  
//                        
//                        for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
//                        {
//                            boolean esAsociado=false;
//                            for(int i=0;i<this.getListatallatacosuela().size();i++)
//                            {
//                                if(listaTablaTallaTacoSuela.get(j).getTalla_fk().equals(this.getListatallatacosuela().get(i).getTalla_fk()))
//                                {
//                                    esAsociado=true;
//                                    i=this.getListatallatacosuela().size();
//                                }
//                            }
//                            if(esAsociado==false)
//                            {
//                                if(this.getTallatacosuela().eliminarTallaTacoSuela(listaTablaTallaTacoSuela.get(j).getCodTallaTacoSuela()))
//                                    seElimino=true;
//                                hayCambioTallas=true;
//                            }
//                        }
//                        
//                        for(int i=0;i<this.getListatallatacosuela().size();i++)
//                        {                            
//                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
//                            boolean estaAsociada=false;
//                            for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
//                            {
//                                if(this.getListatallatacosuela().get(i).getTalla_fk().equals(((TallaTacoSuela)listaTablaTallaTacoSuela.get(j)).getTalla_fk()))
//                                {
//                                    estaAsociada=true;
//                                    j=listaTablaTallaTacoSuela.size();
//                                }
//                            }
//                            if(estaAsociada==false)
//                            {
//                            //Generacion del primary key                                                        
//                                this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
//
//                                this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
//                                //this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
//                                System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
//                                this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
//                                                                            this.getListatallatacosuela().get(i).getTalla_fk(), 
//                                                                            this.getListatallatacosuela().get(i).getTacoSuela_fk(),
//                                                                            this.getUsuarioBean().getUsuario().getCodUsuario(),
//                                                                            fechaHora);
//                                //Almacenar datos en la tabla tallaTacoSuela
//                                if(this.getTallatacosuela().crearTallaTacoSuela())
//                                {
//                                    seAlmaceno=true;
//                                    hayCambioTallas=true;
//                                }
//                                else
//                                {
//                                    contadorFallo=i;
//                                    seAlmaceno=false;
//                                    i=this.getListatallatacosuela().size();
//                                }    
//                            }
//                        }
//                        if(seAlmaceno||seElimino||(!(hayCambioTallas)))                      
//                        {
//                            //gbd.commit();
//                            //gbd.desconectar();
//                            this.mostrarMensaje("info","Actualizado los Datos de Materia Prima!","");
//                            //this.borrarDatos();                           
//                            return true;
//                        }
//                        else
//                        {
//                            //agregar el codigo para borrar los datos de la tabla materia prima
//                            //gbd.rollback();
//                            //gbd.desconectar();
//                            mostrarMensaje("fatal","Error al actualizar los datos","");
//                        }
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al actualizar los datos","");
//                    }
//                    
//                }
//                else if(categoria.equals("Taco"))
//                {                    
//                    List <String> datosLista1= new ArrayList<String>();
//                    String respuestaInsert1; //es la respuesta del insert si se almaceno o no los datos
//                    
//                    datosLista1.add(0,"\'"+this.getCodTacoSuela()+"\'");
//
//                    datosLista1.add(1,"\'"+this.getNombreTacoSuela()+"\'"); 
//                    datosLista1.add(2,""+this.getEsTacoSuela()+""); 
//                                        
//                    this.setMateriaPrima_fkTacoSuela(this.getCodMateriaPrima());
//                    datosLista1.add(3,"\'"+this.getMateriaPrima_fkTacoSuela()+"\'"); 
//                    
//                    condicion=" codTacoSuela=\'"+this.getCodTacoSuela()+"\' and materiaprima_fk=\'"+this.getCodMateriaPrima()+"\' ";
//                    //Almacenar datos en la tabla Taco Suela
//                    respuestaInsert1=""+gbd.update("TacoSuela",datosLista1,condicion,true);
//
//                    if(respuestaInsert1.equals("Registro actualizado correctamente"))
//                    {
//                        int contadorFallo=0;
//                        boolean seAlmaceno=false;
//                        boolean seElimino=false;
//                        boolean hayCambioTallas=false;
//                        //Actualizacion del detalle
//                           
//                        //1.-a realizarse la consulta si esta en el detalle
//                            //2a.-si esta en el detalle y en la lista finaliza la accion
//                            //2b.-si esta en el detalle y no en la lista, se elimina de la base de datos
//                            //3c.-si esta no esta en el detalle y està en la lista se crea un nuevo detalle en la bd
//                         
//                        this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
//                        List<TallaTacoSuela>  listaTablaTallaTacoSuela=(List<TallaTacoSuela>)((this.getTallatacosuela().consultarTallaTacoSuela(" where tacosuela_fk= \'"+this.getCodTacoSuela() +"\' ","").get(0)));  
//                        
//                        for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
//                        {
//                            boolean esAsociado=false;
//                            for(int i=0;i<this.getListatallatacosuela().size();i++)
//                            {
//                                if(listaTablaTallaTacoSuela.get(j).getTalla_fk().equals(this.getListatallatacosuela().get(i).getTalla_fk()))
//                                {
//                                    esAsociado=true;
//                                    i=this.getListatallatacosuela().size();
//                                }
//                            }
//                            if(esAsociado==false)
//                            {
//                                if(this.getTallatacosuela().eliminarTallaTacoSuela(listaTablaTallaTacoSuela.get(j).getCodTallaTacoSuela()))
//                                    seElimino=true;
//                                hayCambioTallas=true;
//                            }
//                        }
//                         
//                        for(int i=0;i<this.getListatallatacosuela().size();i++)
//                        {                                                       
//                            String respuestaInsert2; //es la respuesta del insert si se almaceno o no los datos
//                            boolean estaAsociada=false;
//                            for(int j=0;j<listaTablaTallaTacoSuela.size();j++)
//                            {
//                                if(this.getListatallatacosuela().get(i).getTalla_fk().equals(((TallaTacoSuela)listaTablaTallaTacoSuela.get(j)).getTalla_fk()))
//                                {
//                                    estaAsociada=true;
//                                    j=listaTablaTallaTacoSuela.size();
//                                }
//                            }
//                            if(estaAsociada==false)
//                            {
//                                //Generacion del primary key
//                                this.getListatallatacosuela().get(i).setCodTallaTacoSuela(gbd.generaCodigo("tallatacosuela", "TT"));                            
//                                //this.getListatallatacosuela().get(i).setTacoSuela_fk(this.getCodTacoSuela());
//                                System.out.println("%%%%%%----this.getListatallatacosuela().get(i).setTacoSuela_fk( "+this.getCodTacoSuela());
//                                this.getTallatacosuela().setUsuario(this.getUsuarioBean().getUsuario().getCodUsuario(),this.getUsuarioBean().getUsuario().getCedulaUsuario(),this.getUsuarioBean().getUsuario().getClave());
//                                this.getTallatacosuela().setearTallaTacoSuela(this.getListatallatacosuela().get(i).getCodTallaTacoSuela(), 
//                                                                            this.getListatallatacosuela().get(i).getTalla_fk(), 
//                                                                            this.getListatallatacosuela().get(i).getTacoSuela_fk(),
//                                                                            this.getUsuarioBean().getUsuario().getCodUsuario(),
//                                                                            fechaHora);
//                                //Almacenar datos en la tabla tallaTacoSuela
//                                if(this.getTallatacosuela().crearTallaTacoSuela())
//                                {
//                                    seAlmaceno=true;
//                                    hayCambioTallas=true;
//                                }
//                                else
//                                {
//                                    contadorFallo=i;
//                                    seAlmaceno=false;
//                                    i=this.getListatallatacosuela().size();
//                                }                            
//                            }
//                        }
//                        if(seAlmaceno||seElimino||(!(hayCambioTallas)))                      
//                        {
//                            //gbd.commit();
//                            //gbd.desconectar();
//                            this.mostrarMensaje("info","Actualizado los Datos Materia Prima!","");
//                            //this.borrarDatos();                           
//                            return true;
//                        }
//                        else
//                        {
//                            //agregar el codigo para borrar los datos de la tabla materia prima
//                            //gbd.rollback();
//                            //gbd.desconectar();
//                            mostrarMensaje("fatal","Error al actualizar los datos","");
//                        }
//                    }
//                    else
//                    {
//                        //agregar el codigo para borrar los datos de la tabla materia prima en caso de que no se hayan almacenado los datosde las tablas subsiguientes
//                        //gbd.rollback();
//                        //gbd.desconectar();
//                        mostrarMensaje("fatal","Error al actualizar los datos","");
//                    }
//                    
//                }
//                
//                //this.borrarDatos();
//                //return true;
//            }
//            else
//            {
//                //gbd.rollback();
//                //gbd.desconectar();
//                this.mostrarMensaje("fatal","Error al actualizar los datos","");
//            }                
//        }
//        else
//        {
//            this.mostrarMensaje("error","Error: La Materia Prima que desea ingresar ya existe","");
//            //this.borrarDatos();     
//            return true;
//        }                                
//        return false;
//    }
//    public boolean eliminarMateriaPrima(String categoria, String codMateriaPrima,String codigo) //codigo= a cada primary key de la tabla agregado,forro,tacosuela,cuero
//    {
//        if(this.verificarLogin())
//        {
//            int enBOM=-1, enInventario=-1;
//            GestorBaseDatos gbd=new GestorBaseDatos();
//            this.setearConexion(gbd);
//            //verificar que la materia prima no este asociada con la estructura de materiales y de uso en el inventario
//            //select count(mp.codmateriaprima) from materiaprima as mp, estructuramaterialesbom bom where mp.codmateriaprima=bom.materiaprima_fk and mp.codmateriaprima=''
//            enBOM=Integer.parseInt((gbd.select("select count(Codbom) from estructuramaterialesbom where  materiaprima_fk= \'"+codMateriaPrima+"\'")).get(0).toString()); 
//            if(categoria.equals("Agregado"))
//            {            
//                enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  agregado_fk= \'"+codigo+"\'")).get(0).toString()); 
//                if((enBOM==0)&&(enInventario==0))
//                {
//                    if(gbd.delete("Agregado","codAgregado", "\'"+codigo+"\'",true))
//                    {
//                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                            return true;
//                        }                        
//                    }
//                }
//            }
//            else if(categoria.equals("Cuero"))
//            {            
//                enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  Cuero_fk= \'"+codigo+"\'")).get(0).toString()); 
//                if((enBOM==0)&&(enInventario==0))
//                {
//                    if(gbd.delete("Cuero","codCuero", "\'"+codigo+"\'",true))
//                    {
//                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                            return true;
//                        }                        
//                    }
//                }
//            }
//            else if(categoria.equals("Forro"))
//            {            
//                enInventario=Integer.parseInt((gbd.select("select count(CodInventario) from inventario where  Forro_fk= \'"+codigo+"\'")).get(0).toString()); 
//                if((enBOM==0)&&(enInventario==0))
//                {
//                    if(gbd.delete("Forro","codForro", "\'"+codigo+"\'",true))
//                    {
//                        if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                            return true;
//                        }                        
//                    }
//                }
//            }
//            else if((categoria.equals("Suela"))||(categoria.equals("Taco")))
//            {            
//                enInventario=Integer.parseInt((gbd.select("select count(i.codinventario)  from tacosuela as ts, tallatacosuela as tts, inventario as i where ts.codtacosuela=tts.tacosuela_fk and tts.codtallatacosuela=i.tallatacosuela_fk and tts.tacosuela_fk=\'"+codigo+"\'")).get(0).toString()); 
//                if((enBOM==0)&&(enInventario==0))
//                {
//                    if(gbd.delete("TallaTacoSuela","TacoSuela_fk", "\'"+codigo+"\'",true))
//                    {
//                        if(gbd.delete("TacoSuela","codTacoSuela", "\'"+codigo+"\'",true))
//                        {
//                            if(gbd.delete("MateriaPrima","codMateriaPrima", "\'"+codMateriaPrima+"\'",true)){
//                                return true;
//                            }    
//                        }
//                    }
//                }
//            }
//        }
//        return false;
//    }
//    //------------------------------------------------------------------------//
//    //Clases para administracion de las tablas de consulta
//    public static class tablaAgregado{
//        private String codMateriaPrima;
//        private String fechaCreacion;
//        private String esActivo;
//                
//        private String codInsumo;
//        private String nombreInsumo;
//        
//        private int codUnidadMedida;
//        private String abreviatura;
//        
//        private String codAgregado;
//        private String nombreMateriaPrimaAgregado;
//
//        public tablaAgregado(String codMateriaPrima,String nombreInsumo, String nombreMateriaPrimaAgregado, String abreviatura,String fechaCreacion, String esActivo, String codInsumo,  String codAgregado, int codUnidadMedida) {
//            this.codMateriaPrima = codMateriaPrima;
//            this.fechaCreacion = fechaCreacion;
//            this.esActivo = esActivo;
//            this.codInsumo = codInsumo;
//            this.nombreInsumo = nombreInsumo;
//            this.codUnidadMedida = codUnidadMedida;
//            this.abreviatura = abreviatura;
//            this.codAgregado = codAgregado;
//            this.nombreMateriaPrimaAgregado = nombreMateriaPrimaAgregado;
//        }
//        public String getAbreviatura() {
//            return abreviatura;
//        }
//
//        public void setAbreviatura(String abreviatura) {
//            this.abreviatura = abreviatura;
//        }
//
//        public String getCodAgregado() {
//            return codAgregado;
//        }
//
//        public void setCodAgregado(String codAgregado) {
//            this.codAgregado = codAgregado;
//        }
//
//        public String getCodInsumo() {
//            return codInsumo;
//        }
//
//        public void setCodInsumo(String codInsumo) {
//            this.codInsumo = codInsumo;
//        }
//
//        public String getCodMateriaPrima() {
//            return codMateriaPrima;
//        }
//
//        public void setCodMateriaPrima(String codMateriaPrima) {
//            this.codMateriaPrima = codMateriaPrima;
//        }
//
//        public int getCodUnidadMedida() {
//            return codUnidadMedida;
//        }
//
//        public void setCodUnidadMedida(int codUnidadMedida) {
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getEsActivo() {
//            return esActivo;
//        }
//
//        public void setEsActivo(String esActivo) {
//            this.esActivo = esActivo;
//        }
//
//        public String getFechaCreacion() {
//            return fechaCreacion;
//        }
//
//        public void setFechaCreacion(String fechaCreacion) {
//            this.fechaCreacion = fechaCreacion;
//        }
//
//        public String getNombreInsumo() {
//            return nombreInsumo;
//        }
//
//        public void setNombreInsumo(String nombreInsumo) {
//            this.nombreInsumo = nombreInsumo;
//        }
//
//        public String getNombreMateriaPrimaAgregado() {
//            return nombreMateriaPrimaAgregado;
//        }
//
//        public void setNombreMateriaPrimaAgregado(String nombreMateriaPrimaAgregado) {
//            this.nombreMateriaPrimaAgregado = nombreMateriaPrimaAgregado;
//        }                                 
//    }
//    public static class tablaCuero{
//        private String codMateriaPrima;
//        
//        private String nombreInsumo;
//        
//        private String nombreCuero;
//        private String colorCuero;
//        private String textura;
//        
//        private String abreviatura;
//        
//        private String fechaCreacion;
//        private String esActivo;
//        
//        private String codInsumo;
//        private String codCuero;
//        private int codUnidadMedida;
//
//        public tablaCuero(String codMateriaPrima, String nombreInsumo, String nombreCuero, String colorCuero, String textura, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, String codCuero, int codUnidadMedida) {
//            this.codMateriaPrima = codMateriaPrima;
//            this.nombreInsumo = nombreInsumo;
//            this.nombreCuero = nombreCuero;
//            this.colorCuero = colorCuero;
//            this.textura = textura;
//            this.abreviatura = abreviatura;
//            this.fechaCreacion = fechaCreacion;
//            this.esActivo = esActivo;
//            this.codInsumo = codInsumo;
//            this.codCuero = codCuero;
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getAbreviatura() {
//            return abreviatura;
//        }
//
//        public void setAbreviatura(String abreviatura) {
//            this.abreviatura = abreviatura;
//        }
//
//        public String getCodCuero() {
//            return codCuero;
//        }
//
//        public void setCodCuero(String codCuero) {
//            this.codCuero = codCuero;
//        }
//
//        public String getCodInsumo() {
//            return codInsumo;
//        }
//
//        public void setCodInsumo(String codInsumo) {
//            this.codInsumo = codInsumo;
//        }
//
//        public String getCodMateriaPrima() {
//            return codMateriaPrima;
//        }
//
//        public void setCodMateriaPrima(String codMateriaPrima) {
//            this.codMateriaPrima = codMateriaPrima;
//        }
//
//        public int getCodUnidadMedida() {
//            return codUnidadMedida;
//        }
//
//        public void setCodUnidadMedida(int codUnidadMedida) {
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getColorCuero() {
//            return colorCuero;
//        }
//
//        public void setColorCuero(String colorCuero) {
//            this.colorCuero = colorCuero;
//        }
//
//        public String getEsActivo() {
//            return esActivo;
//        }
//
//        public void setEsActivo(String esActivo) {
//            this.esActivo = esActivo;
//        }
//
//        public String getFechaCreacion() {
//            return fechaCreacion;
//        }
//
//        public void setFechaCreacion(String fechaCreacion) {
//            this.fechaCreacion = fechaCreacion;
//        }
//
//        public String getNombreCuero() {
//            return nombreCuero;
//        }
//
//        public void setNombreCuero(String nombreCuero) {
//            this.nombreCuero = nombreCuero;
//        }
//
//        public String getNombreInsumo() {
//            return nombreInsumo;
//        }
//
//        public void setNombreInsumo(String nombreInsumo) {
//            this.nombreInsumo = nombreInsumo;
//        }
//
//        public String getTextura() {
//            return textura;
//        }
//
//        public void setTextura(String textura) {
//            this.textura = textura;
//        }
//    }
//    public static class tablaForro{
//        private String codMateriaPrima;
//        
//        private String nombreInsumo;
//        
//        private String tipoForro;
//        
//        private String abreviatura;
//        
//        private String fechaCreacion;
//        private String esActivo;
//                
//        private String codInsumo;
//        private String codForro;
//        private int codUnidadMedida;
//
//        public tablaForro(String codMateriaPrima, String nombreInsumo, String tipoForro, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, String codForro, int codUnidadMedida) {
//            this.codMateriaPrima = codMateriaPrima;
//            this.nombreInsumo = nombreInsumo;
//            this.tipoForro = tipoForro;
//            this.abreviatura = abreviatura;
//            this.fechaCreacion = fechaCreacion;
//            this.esActivo = esActivo;
//            this.codInsumo = codInsumo;
//            this.codForro = codForro;
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getAbreviatura() {
//            return abreviatura;
//        }
//
//        public void setAbreviatura(String abreviatura) {
//            this.abreviatura = abreviatura;
//        }
//
//        public String getCodForro() {
//            return codForro;
//        }
//
//        public void setCodForro(String codForro) {
//            this.codForro = codForro;
//        }
//
//        public String getCodInsumo() {
//            return codInsumo;
//        }
//
//        public void setCodInsumo(String codInsumo) {
//            this.codInsumo = codInsumo;
//        }
//
//        public String getCodMateriaPrima() {
//            return codMateriaPrima;
//        }
//
//        public void setCodMateriaPrima(String codMateriaPrima) {
//            this.codMateriaPrima = codMateriaPrima;
//        }
//
//        public int getCodUnidadMedida() {
//            return codUnidadMedida;
//        }
//
//        public void setCodUnidadMedida(int codUnidadMedida) {
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getEsActivo() {
//            return esActivo;
//        }
//
//        public void setEsActivo(String esActivo) {
//            this.esActivo = esActivo;
//        }
//
//        public String getFechaCreacion() {
//            return fechaCreacion;
//        }
//
//        public void setFechaCreacion(String fechaCreacion) {
//            this.fechaCreacion = fechaCreacion;
//        }
//
//        public String getNombreInsumo() {
//            return nombreInsumo;
//        }
//
//        public void setNombreInsumo(String nombreInsumo) {
//            this.nombreInsumo = nombreInsumo;
//        }
//
//        public String getTipoForro() {
//            return tipoForro;
//        }
//
//        public void setTipoForro(String tipoForro) {
//            this.tipoForro = tipoForro;
//        }
//    }
//    public static class tablaSuela{
//        private String codMateriaPrima;
//        
//        private String nombreInsumo;
//        
//        private String nombreSuela;
//         
//        private String abreviatura;
//        
//        private String fechaCreacion;
//        private String esActivo;
//                
//        private String codInsumo;
//        private String codTacoSuela;
//        private int codUnidadMedida;
//
//        public tablaSuela(String codMateriaPrima, String nombreInsumo, String nombreSuela, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, String codTacoSuela, int codUnidadMedida) {
//            this.codMateriaPrima = codMateriaPrima;
//            this.nombreInsumo = nombreInsumo;
//            this.nombreSuela = nombreSuela; 
//            this.abreviatura = abreviatura;
//            this.fechaCreacion = fechaCreacion;
//            this.esActivo = esActivo;
//            this.codInsumo = codInsumo;
//            this.codTacoSuela = codTacoSuela;           
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getAbreviatura() {
//            return abreviatura;
//        }
//
//        public void setAbreviatura(String abreviatura) {
//            this.abreviatura = abreviatura;
//        }
//
//        public String getCodInsumo() {
//            return codInsumo;
//        }
//
//        public void setCodInsumo(String codInsumo) {
//            this.codInsumo = codInsumo;
//        }
//
//        public String getCodMateriaPrima() {
//            return codMateriaPrima;
//        }
//
//        public void setCodMateriaPrima(String codMateriaPrima) {
//            this.codMateriaPrima = codMateriaPrima;
//        }
//
//        public String getCodTacoSuela() {
//            return codTacoSuela;
//        }
//
//        public void setCodTacoSuela(String codTacoSuela) {
//            this.codTacoSuela = codTacoSuela;
//        }
//
//        public int getCodUnidadMedida() {
//            return codUnidadMedida;
//        }
//
//        public void setCodUnidadMedida(int codUnidadMedida) {
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getEsActivo() {
//            return esActivo;
//        }
//
//        public void setEsActivo(String esActivo) {
//            this.esActivo = esActivo;
//        }
//
//        public String getFechaCreacion() {
//            return fechaCreacion;
//        }
//
//        public void setFechaCreacion(String fechaCreacion) {
//            this.fechaCreacion = fechaCreacion;
//        }
//
//        public String getNombreInsumo() {
//            return nombreInsumo;
//        }
//
//        public void setNombreInsumo(String nombreInsumo) {
//            this.nombreInsumo = nombreInsumo;
//        }
//
//        public String getNombreSuela() {
//            return nombreSuela;
//        }
//
//        public void setNombreSuela(String nombreSuela) {
//            this.nombreSuela = nombreSuela;
//        }
//            
//    }
//    public static class tablaTaco{
//        private String codMateriaPrima;
//        
//        private String nombreInsumo;
//        
//        private String nombreTaco;
//        
//        private String abreviatura;
//        
//        private String fechaCreacion;
//        private String esActivo;
//                
//        private String codInsumo;
//        private String codTacoSuela;
//        private int codUnidadMedida;
//
//        public tablaTaco(String codMateriaPrima, String nombreInsumo, String nombreTaco, String abreviatura, String fechaCreacion, String esActivo, String codInsumo, String codTacoSuela, int codUnidadMedida) {
//            this.codMateriaPrima = codMateriaPrima;
//            this.nombreInsumo = nombreInsumo;
//            this.nombreTaco = nombreTaco;            
//            this.abreviatura = abreviatura;
//            this.fechaCreacion = fechaCreacion;
//            this.esActivo = esActivo;
//            this.codInsumo = codInsumo;
//            this.codTacoSuela = codTacoSuela;            
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getAbreviatura() {
//            return abreviatura;
//        }
//
//        public void setAbreviatura(String abreviatura) {
//            this.abreviatura = abreviatura;
//        }
//
//        public String getCodInsumo() {
//            return codInsumo;
//        }
//
//        public void setCodInsumo(String codInsumo) {
//            this.codInsumo = codInsumo;
//        }
//
//        public String getCodMateriaPrima() {
//            return codMateriaPrima;
//        }
//
//        public void setCodMateriaPrima(String codMateriaPrima) {
//            this.codMateriaPrima = codMateriaPrima;
//        }
//
//        public String getCodTacoSuela() {
//            return codTacoSuela;
//        }
//
//        public void setCodTacoSuela(String codTacoSuela) {
//            this.codTacoSuela = codTacoSuela;
//        }
//
//        public int getCodUnidadMedida() {
//            return codUnidadMedida;
//        }
//
//        public void setCodUnidadMedida(int codUnidadMedida) {
//            this.codUnidadMedida = codUnidadMedida;
//        }
//
//        public String getEsActivo() {
//            return esActivo;
//        }
//
//        public void setEsActivo(String esActivo) {
//            this.esActivo = esActivo;
//        }
//
//        public String getFechaCreacion() {
//            return fechaCreacion;
//        }
//
//        public void setFechaCreacion(String fechaCreacion) {
//            this.fechaCreacion = fechaCreacion;
//        }
//
//        public String getNombreInsumo() {
//            return nombreInsumo;
//        }
//
//        public void setNombreInsumo(String nombreInsumo) {
//            this.nombreInsumo = nombreInsumo;
//        }
//
//        public String getNombreTaco() {
//            return nombreTaco;
//        }
//
//        public void setNombreTaco(String nombreTaco) {
//            this.nombreTaco = nombreTaco;
//        }
//        
//    }
//    
//    //------------------------------------------------------------------------//
//   
//}
